Utiliser rTorrent

Utilisation de rTorrent pour télécharger et partager vos fichiers

rTorrent est un client bittorrent non graphique que j’utilise depuis plusieurs années pour sa simplicité, sa faible empreinte niveau ressources et ses possibilités de configuration poussées. Au début il peut dérouter, mais après un temps d’adaptation, on découvre toute sa souplesse et sa puissance. Il suffit simplement d’un accès SSH pour pouvoir gérer ses téléchargements depuis n’importe où, très utile. Une particularité très intéressante de rTorrent est qu’il scrute le contenu d’un répertoire donné qui recevra les fichiers .torrent, ainsi dès qu’un nouveau torrent est ajouté dans celui-ci, le téléchargement débute automatiquement.

Installation et configuration

J’avais originellement écrit cet article pour Archlinux, donc pour cette distro, rTorrent est dans les dépôts, pacman l’installe donc sans soucis, ainsi que screen le multiplexeur de terminaux :

# pacman -S rtorrent screen

Pour du Fedora :

# yum install rtorrent screen

Ensuite, il va falloir structurer les quelques répertoires nécessaires à son bon fonctionnement. J’ai ainsi crée quatre répertoires dans mon home sous ~/bt : data, completed, watch et sessions, qui respectivement serviront à stocker les fichiers en cours de téléchargement, stocker les fichiers completement téléchargés, fournir un répertoire pour les fichiers .torrent que rtorrent scrutera régulièrement et un répertoire pour les sessions en cours :

# mkdir -p ~/bt/{data,sessions,watch,completed}

Il faut maintenant créer le fichier de configuration ~/.rtorrent.rc, voici le mien :

# Limite en upload et download
upload_rate = 30
download_rate = 6000

# Répertoire de destination des fichiers téléchargés et des sessions
directory = /home/fabien/bt/data/
session = /home/fabien/bt/sessions

# Ports utilisés et diverses options
port_range = 6881-6999
port_random = no
check_hash = yes
max_memory_usage = 268435456
encryption = allow_incoming,enable_retry,prefer_plaintext

# Répertoire de dépôt des fichiers .torrent
schedule = watch_directory,15,15,load_start=/home/fabien/bt/watch/*.torrent
schedule = tied_directory,15,15,start_tied=
schedule = untied_directory,15,15,stop_untied=

# Répertoire où déplacer les fichiers lorsqu'ils sont complets
system.method.set_key = event.download.finished,move_complete,"execute=mv, \
-u,$d.get_base_path=,/home/fabien/bt/completed ; \
d.set_directory=/home/fabien/bt/completed"

# On envoie un email pour prévenir qu'un fichier est téléchargé
system.method.set_key = event.download.finished,notify_me, \
"execute=/home/fabien/bin/rtorrent_mail.sh,$d.get_name="

# Ferme le torrent lorsque l'espace disque est minimal
schedule = low_diskspace,5,60,close_low_diskspace=100M

# Ratio de 1:1 pour les fichiers inferieurs à 500Mo, sinon ratio de 2:1
ratio.min.set=100
ratio.upload.set=200M
ratio.max.set=200

Je passe sur son explication, c’est assez explicite. Pour plus d’informations, se reporter à la documentation du site de rTorrent.

Pour aider au lancement du programme, voici un script bash lançant rTorrent dans un screen :

#!/bin/bash
screen -dmS rtorrent nice -n 15 rtorrent

Ce deuxième script permet de visualiser le déroulement de rTorrent (en ré-attachant le screen) :

#!/bin/bash
stty stop undef
stty start undef
screen -rd bt

En ce qui me concerne, mes scripts sont sous ~/bin, ne pas oublier de leur attribuer les droits en exécution :

$ chmod +x ~/bin/btlaunch ~/bin/btview

Et voici un script rc qui permet de gérer rTorrent à la sauce Archlinux et de le démarrer en tant que daemon avec la machine, rtorrent :

#!/bin/bash

. /etc/rc.conf
. /etc/rc.d/functions

case "$1" in
start)
stat_busy "Starting rtorrent"
su fabien -c 'screen -d -m -S bt rtorrent' &> /dev/null
if [ $? -gt 0 ]; then
stat_fail
else
add_daemon rtorrent
stat_done
fi
;;
stop)
stat_busy "Stopping rtorrent"
killall -w -s 2 /usr/bin/rtorrent &> /dev/null
if [ $? -gt 0 ]; then
stat_fail
else
rm_daemon rtorrent
stat_done
fi
;;
restart)
$0 stop
sleep 1
$0 start
;;
*)
echo "usage: $0 {start|stop|restart}"
esac
exit 0

Et enfin le petit bash d’envoi de l’email en fin de téléchargement, rtorrent_mail.sh :

#!/bin/bash
echo "$(date) : $1 - Download completed." | mail -s "[rtorrent] - Download completed : $1" mon@adresse.net

Lancement et utilisation

Voilà, c’est terminé, il ne reste plus qu’à lancer le daemon et accessoirement de visualiser l’état avec les scripts :

$ ~/bin/btlaunch.sh
$ ~/bin/btview.sh

Lancement/arrêt/re-démarrage avec la commande rc :

# /etc/rc.d/rtorrent start
# /etc/rc.d/rtorrent stop
# /etc/rc.d/rtorrent restart

Mais pour voir l’évolution, il faut bien entendu ajouter des torrents, pour se faire, copier simplement les fichiers .torrent dans le répertoire watch. Et vous verrez les téléchargements débuter. Ensuite l’utilisation se fait par quelques commandes, en voici quelques unes :

CTRL+d         Stoppe un torrent (ou supprime un torrent arrêté)
CTRL+q         Quitte rTorrent (ferme le screen)
CTRL+s         Démarre un torrent arrêté
CTRL+a puis d     Détache le screen (rTorrent tourne toujours)
a ou s ou d ou     Augmente l’upload de 1Kb/s ou 5Kb/s ou 50Kb/s
z ou x ou c     Réduit l’upload de 1Kb/s ou 5Kb/s ou 50Kb/s
A ou S ou D ou     Augmente le download de 1Kb/s ou 5Kb/s ou 50Kb/s
Z ou X ou C     Réduit le download de 1Kb/s ou 5Kb/s ou 50Kb/s

Cet article fut publié pour la première fois le 18 février 2008.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *