Bonjour à tous! Cette période de grand froid étant propice au cocooning et au développement maison qui s'en suit, j'ai eu tout le temps nécessaire pour mettre en place la solution que je voulais depuis longtemps; je m'explique.

Je possède un NAS non-Synology, qui n'est pas équipé de la fameuse download station qui s'en suit. Mon cahier des charges était alors simple, sur le papier: rapatrier automatiquement mes torrents vers mon NAS dès qu'ils sont finis. Je ne voulais pas d'une cron sur mon NAS qui le ferait tourner en permanence si elle était régulière, ou qui serait en retard si elle se lançait une fois par jour. Enfin, je voulais que seuls les derniers torrents soient traités de façon à pouvoir organiser les fichiers comme je le désire sur mon NAS sans qu'ils soient re téléchargés.

Ma solution fonctionne potentiellement sur tous les NAS Linux, avec une seedbox Linux elle aussi, pourvue de rTorrent. Un accès SSH est cependant nécessaire, ce qui n'est pas forcément en place sur tous les services de seedbox (mais automatique dès lors que vous souscrivez à un serveur Kimsufi ou Online pour créer votre seedbox - ce que je conseille). Enfin, votre NAS devra être accessible depuis l'extérieur en SSH, et donc avoir une IP fixe. Si votre FAI ne vous fournit qu'une IP dynamique, renseignez vous sur des services de DDNS; une solution existe forcément, que ce soit par votre NAS, par votre routeur ou un logiciel sur votre ordinateur.

Nous allons commencer par faire communiquer la seedbox et le NAS sans mot de passe. C'est assez simple; sur la seedbox, tapez

ssh-keygen -t rsa

Et validez les trois fois. Puis, toujours sur la console de la seedbox,

ssh-copy-id utilisateur_NAS@IP_NAS

Si vous avez changé le port SSH par défaut sur le NAS, ce que je vous conseille, le code devient

ssh-copy-id -p VOTRE_PORT utilisateur_NAS@IP_NAS

Passons à la configuration de rTorrent. Dans votre dossier habituel de téléchargement, créer un dossier complete

Ouvrez votre .rtorrent.rc, habituellement dans ~/.rtorrent.rc, soit /nom_utilisateur/.rtorrent.rc Vous aurez une ligne commençant par schedule = ..., ajoutez en suivant

system.method.set_key = event.download.finished,move_complete,execute=ln,-s,$d.get_base_path=,/var/www/rutorrent/downloads/complete
system.method.set_key = event.download.finished,notify_me,execute=~/sync.sh

Que faisons-nous? La première ligne crée un lien symbolique du fichier téléchargé dans le dossier /complete. La deuxième lance le script suivant, sync.sh, que vous devez coller dans votre dossier utilisateur (ou créer avec nano=)

nano ~/sync.sh

Le fichier en lui-même: rsync.sh

#!/bin/bash
# Rsync déjà lancé: stop
if [ -e $HOME/rsync.lock ]
then
    echo Rsync deja lance, on quitte
    exit
fi

# Création d'un fichier .lock pour ne pas lancer deux instances de rsync en parallèle
touch $HOME/rsync.lock

# Let the show begin
rsync -avL --progress --inplace --rsh='ssh -pVOTRE_PORT' /var/www/rutorrent/downloads/complete/* utilisateur_NAS@IP_NASchemin/de/votre/NAS/ou/iront/les/fichiers/
if [ $? == 0 ]; then
    # Transferts OK: liens symboliques supprimés. Dans /complete ne se trouvent que les liens symbolique, pas les fichiers en eux-mêmes
    rm -rf /var/www/rutorrent/downloads/complete/*
fi

# Suppression du fichier lock
rm $HOME/rsync.lock

Ce fichier devra être exécutable. Bien sûr, vous devrez modifier /var/www/rutorrent/downloads/complete/ par votre chemin.

Les avantages de cette méthode sont sa légèreté (pas de cron sur le NAS), sa compatibilité, totale entre serveurs possédant un accès SSH et sa rapidité, puisque le fichier est envoyé dès que le téléchargement est fini.

C'est relativement simple mais je n'avais pas vu de telles solutions toutes faites sur internet, donc si cela peut vous servir . Ne reste plus qu'à paramétrer correctement la récupération des torrents via RSS.

Bonnes fêtes et bons téléchargements d'ISO Linux!

Sources m'ayant aidé dans ma quête:

http://forums.whirlpool.net.au/archive/1771719
http://scriptthe.net/2013/07/27/creating-an-automated-torrentflow-with-rutorrentrtorrent/
http://pmourlanne.wordpress.com/2013/04/27/rtorrent-receiving-an-email-when-a-download-is-complete/

Répondre…