#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
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 : Giroll – Services libres : TdCT.org
Hide in your shell, scripts & astuces : applications dans un tunnel – smart wget – trouver des pdf – install. auto de paquets – sauvegarde 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
GUL Bordeaux : Giroll – Services libres : TdCT.org
Hide in your shell, scripts & astuces : applications dans un tunnel – smart wget – trouver des pdf – install. auto de paquets – sauvegarde 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
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
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