Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 20/08/2014, à 18:45

Sm3n

Incron et téléchargement auto

Salut à tous,

Alors, j'ai programmé des téléchargements de mes distributions Linux préférées, qui une fois terminés, ces distrib doivent être transférées sur un autre serveur via ftp.
J'utilise pour cela, Incron qui watch le dossier particulier et qui lance un script.

Je remarque qu'Incron effectue bien son taf lorsque j'effectue moi-même les copies (càd quand j'ajoute une distrib dans le répertoire à watch), mais lorsque ces releases sont téléchargées automatiquement via l'autodl-irssi (rtorrent), incron ne lance rien du tout. Un peu comme s'il ne détectait pas les actions du client torrent.

L'utilisation d'incron n'est limité à aucun user. Je vois pas où est le hic.

Merci d'avance pour votre aide smile

Dernière modification par Sm3n (Le 20/08/2014, à 18:52)

Hors ligne

#2 Le 21/08/2014, à 07:23

nesthib

Re : Incron et téléchargement auto

Lance inotifywait sur ton dossier cible et regarde les événements dans les deux configurations. Tu verras si tu as utilisé la bonne configuration :

inotifywait -m /dossier_cible

Pourquoi ne pas directement télécharger le fichier sur le disque cible ?


GUL Bordeaux : GirollServices libres : TdCT.org
Hide in your shell, scripts & astuces :  applications dans un tunnelsmart wgettrouver des pdfinstall. auto de paquetssauvegarde auto♥ awk
  ⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn

Hors ligne

#3 Le 21/08/2014, à 17:47

Sm3n

Re : Incron et téléchargement auto

Je n'ai pas accès à ce disque, je peux faire que l'envoi.

inotifywait ? ça fait parti de inotify-tools, je dois l'installer donc.

J'ai remarqué quelque chose. incron ne fait rien si j'utilise l'option "IN_CLOSE_WRITE" (option dont j'ai besoin). Mais si j'utilise "IN_CLOSE_NOWRITE" ou les autres options, ça fonctionne. oO

Hors ligne

#4 Le 22/08/2014, à 02:59

nesthib

Re : Incron et téléchargement auto

inotify-wait (que tu dois en effet installer) te permettra de voir quels sont les appels système réalisés par ton logiciel (ici rtorrent). Effectivement, si tu utilises « IN_CLOSE_WRITE » alors que l'appel effectué est « IN_CLOSE_NOWRITE », ça ne fonctionnera pas wink


GUL Bordeaux : GirollServices libres : TdCT.org
Hide in your shell, scripts & astuces :  applications dans un tunnelsmart wgettrouver des pdfinstall. auto de paquetssauvegarde auto♥ awk
  ⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn

Hors ligne

#5 Le 22/08/2014, à 23:08

jean-luc5629

Re : Incron et téléchargement auto

Bonsoir;

J'ai Un serveur kimsufi, et pour rapatrier mes fichiers de souvenirs de vacances, je fais comme ceci :

Serveur A = KIMSUFI avec serveur ftp (vsftpd) et openssh (auth par clés)
Serveur B = Cubieboard au domicile avec lftp et openssh (auth par clés)

Sur serveur A:

Fichier .rtorrent.rc (extrait essentiel):

directory = /home/jean-luc/downloads/torrents
session = /home/jean-luc/.session
schedule = watch_directory,1,1,"load_start=/home/jean-luc/downloads/.watch/*.torrent"
schedule = untied_directory,5,5,"stop_untied=/home/jean-luc/downloads/.watch/*.torrent"
system.method.set_key = event.download.finished,notify_me,"execute=/home/jean-luc/droits,$d.get_name=,$d.get_base_path=" ###exécute le fichier droits à la fin du download

Fichier droits:

#!/bin/bash
cp -PpuR "`echo $2`" /home/jean-luc/downloads/export/  ### Fait une copie du fichier téléchargé dans le dossier export
echo $(date +"%d/%m/%Y %H:%M:%S") $1 >> ~/downloaded ### journal
find /home/jean-luc/downloads/export -type d -empty -exec rmdir {} \; ###supprime les dossiers vides de la session lftp précédente option --Remove-source-files
sudo /home/jean-luc/start.sh & ###modifier /etc/sudoers en conséquence
exit

Fichier start.sh :

#!/bin/bash
ssh -p 19291 -i ~/.ssh/key1 root@jean-luc.xxxx.net bash < ~/lftp.sh  ### lance le script lftp.sh qui lui sera exécuté sur le serveur B

Fichier lftp.sh

#!/bin/bash
/usr/local/bin/lftp00
exit

Sur le serveur B :

Fichier lftp00 (extrait essentiel) :

nice -19 lftp ftp://${userFTP}:${passFTP}@${servFTP} -e "set file:charset UTF-8 ; set ftp:charset UTF-8;  mirror ${1} --Remove-source-files ${repIgnore} ${repFTP} ${repLocal} ; quit"  >> ${ficLog} 2>&1

Si ça peut te donner des idées.

Hors ligne

#6 Le 24/08/2014, à 23:29

Sm3n

Re : Incron et téléchargement auto

Merci beaucoup.
Je regarderai ça de plus près demain.

Hors ligne

#7 Le 12/09/2014, à 11:34

Sm3n

Re : Incron et téléchargement auto

nesthib a écrit :

inotify-wait (que tu dois en effet installer) te permettra de voir quels sont les appels système réalisés par ton logiciel (ici rtorrent). Effectivement, si tu utilises « IN_CLOSE_WRITE » alors que l'appel effectué est « IN_CLOSE_NOWRITE », ça ne fonctionnera pas wink

Salut,

J'ai donc vérifié les appels et voici ce qui se passe quand j'ajoute un torrent:

Folder/ CREATE Distrib.ISO
Folder/ OPEN Distrib.ISO
Folder/ CLOSE_NOWRITE,CLOSE Distrib.ISO
Folder/ OPEN

Donc normal que IN_CLOSE_WRITE ne fonctionne pas car c'est pas comme une copie normale (comme avec un cp par exemple). Et avec IN_CLOSE_NOWRITE ou un IN_OPEN, mon script qui doit faire une copie, la fait en boucle car le fichier est toujours en lecture ou ouvert si je capte bien.

Doit sûrment y avoir un moyen pour copier ça une seule fois, mais lequel ?

Dernière modification par Sm3n (Le 12/09/2014, à 11:34)

Hors ligne

#8 Le 19/09/2014, à 20:52

Sm3n

Re : Incron et téléchargement auto

J'ai finalement opté pour une copie des fichiers dans le rtorrent.rc. un peu comme me l'a expliqué jean-luc5629.

directory = /home/USER/downloads/FOLDER1

schedule = watch_directory,1,1,"load_start=/home/USER/downloads/FOLDER2/*.torrent,d.set_custom1=FOLDER2"
schedule = untied_directory,5,5,"stop_untied=/home/USER/downloads/FOLDER2/*.torrent"

system.method.insert = d.get_finished_dir,simple,"cat=/home/USER/downloads/FOLDER2/"
system.method.set_key = event.download.finished,move_complete,"d.set_directory=$d.get_finished_dir=;execute=cp,-R,$d.get_base_path=,$d.get_finished_dir="

Pas très pratique (sûrement mal configuré) mais c'est déjà ça. -_-'

Dernière modification par Sm3n (Le 19/09/2014, à 20:52)

Hors ligne