Outils du site

Outils pour utilisateurs


p2p:rtorrent:configurer-watchdirs (lu 7195 fois)

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
p2p:rtorrent:configurer-watchdirs [le 13/01/2017 à 15h54]
111110101011 [Méthode pyroscope]
p2p:rtorrent:configurer-watchdirs [le 21/01/2017 à 22h27] (Version actuelle)
111110101011 [Scripts de gestion du torrent terminé]
Ligne 67: Ligne 67:
 On peut utiliser pyrotorque, avec l'instruction ''job.treewatch''. On peut utiliser pyrotorque, avec l'instruction ''job.treewatch''.
  
-  * https://pyrocore.readthedocs.io/en/latest/advanced.html#rtorrent-queue-manager+  * Documentation : https://pyrocore.readthedocs.io/en/latest/advanced.html#rtorrent-queue-manager 
 + 
 +Suivez la documentation officielle. Elle est cependant un peu incomplète. 
 + 
 +Pour bien comprendre, afin de faire fonctionner le tout, on a besoin de plusieurs briques : 
 +  - on doit faire en sorte que pyrotorque soit invoqué par rtorrent 
 +  - pyrotorque doit être réglé pour surveiller un répertoire (ou plutôt une arborescence dans le cas présent) watch 
 +  - on doit ajouter un évènement dans rtorrent, pour qu'il démarre un script bash lorsque le torrent est terminé ("completion"
 +  - ce script (_event.download.finished-cequelonveut.sh) doit être écrit à la main 
 + 
 +==== Invocation de Pyrotorque par rtorrent ==== 
 + 
 +==== Définir un répertoire watch ====
  
 Il faut donc créer les répertoires watch, et indiquer son chemin dans torque.ini. Il faut donc créer les répertoires watch, et indiquer son chemin dans torque.ini.
  
-En l'état, les contenus ne seront pas déplacés.+==== Gérer l'évènement «torrent terminé» dans rtorrent ====
  
-Dans notre rtorrent.rc, on doit s'assurer qu'il y a une ligne :+1) Dans notre rtorrent.rc, on doit s'assurer qu'il y a une ligne :
  
 <code> <code>
Ligne 80: Ligne 92:
 </code> </code>
  
-Ce qui sous-entend que le fichier ''~/bin/_event.download.finished'' existe, donc il faut le copier.+2) Le code ci-dessus montre qu'on a besoin d'un fichier ''~/bin/_event.download.finished''. Vous devez le copier à la main, Pyroscope le fournit.
  
-Ce fichier est incomplet, il appelle d'autres scripts dont le nom correspond à ''~/bin/_event.download.finished-*.sh''On peut donc créer par exemple un fichier : ''_event.download.finished-mv.sh''+3) Pyrotorque ne tourne que si le fichier ''~/.pyroscope/run/pyrotorque'' existe. 
 +<code>touch ~/.pyroscope/run/pyrotorque</code>
  
-Chez moi, le watch fonctionne, par contre je ne sais pas comment configurer l'event finished pour qu'il déplace les fichiers.+==== Scripts de gestion du torrent terminé ====
  
 +rtorrent va appeller le script ''_event.download.finished'' en fournissant quelques arguments, dont le hash du torrent qui vient d'être completé.
  
-https://www.reddit.com/r/seedboxes/comments/4d8sn8/rtorrent_multiple_seed_paths/+Hélas, le fichier ''_event.download.finished'' fourni par pyroscope est incomplet. Il ne fait qu'appeller d'autres scripts dont le nom correspond à ''~/bin/_event.download.finished-*.sh''.
  
 +On va donc créer un fichier ''~/bin/_event.download.finished-mv.sh'' avec ce contenu (basé sur [[https://pyrocore.readthedocs.io/en/latest/howto.html#moving-all-data-for-selected-items-to-a-new-location|cette doc]]) :
 +<file _event.download.finished-mv.sh>
 +#!/bin/bash
 +
 +# Remplacez "rtorrentuser" par le nom de l'utilisateur qui possède les outils pyroscope
 +RTBIN="/home/rtorrentuser/bin"
 +
 +function rt_create_targetdir() {
 +        targetdir=$($RTBIN/rtcontrol "hash=$1" -qo custom_targetdir)
 +        mkdir -p "$targetdir"
 +}
 +
 +function rt_mv_then_restart() {
 +        $RTBIN/rtcontrol "hash=$1" --stop
 +        $RTBIN/rtcontrol "hash=$1" --exec "directory.set={{item.custom_targetdir}}" -o custom_targetdir --yes
 +        $RTBIN/rtcontrol "hash=$1" --spawn "mv {{item.path}} {{item.custom_targetdir}}" -o custom_targetdir
 +        sleep 1
 +        $RTBIN/rtcontrol "hash=$1" --start
 +}
 +
 +rt_create_targetdir "$1"
 +rt_mv_then_restart "$1"
 +</file>
 +
 +Que fait ce script ?
 +
 +D'abord, il créé le répertoire de destination. Ce n'est pas nécessaire si vous en avez un nombre défini que vous pouvez créer à la main.
 +
 +Dans la seconde fonction, il met en arrêt le téléchargement. Ensuite, il indique à rtorrent que les fichiers du téléchargement sont situés ailleurs (dans le targetdir qu'on a écrit dans torque.ini).
 +
 +Puis il déplace le fichier, et redémarre le téléchargement qui sera donc en seed, tout en ayant ses fichiers situés à leur emplacement final.
 +
 +On pourrait aussi utiliser ''rtmv'' pour laisser les fichiers dans /work/. Et puisque le fichier dans /work/ existerait toujours en tant que lien symbolique, il n'est pas utile de signaler à rtorrent que son emplacement a changé.
 +
 +N'oubliez pas de rendre exécutables les fichiers _event.download.finished* :
 +<code>
 +chmod +x ~/bin/_event.download.finished*
 +</code>
p2p/rtorrent/configurer-watchdirs.1484319252.txt.gz · Dernière modification: le 13/01/2017 à 15h54 de 111110101011