rTorrent

rTorrent est un client BitTorrent très léger fonctionnant en ligne de commande. Il n'utilise que très peu de ressources (pratique si vous disposez d'une vieille machine).

La seule contrainte de cet outil est qu'on ne peut pas fermer le terminal dans lequel il est lancé sans le stopper. Pour contourner ce problème, on utilisera le programme Screen, tmux ou dtach. Il est également possible d'utiliser alltray afin d'envoyer l'icône du terminal dans la zone de notification.

Tout d'abord, commencez par créer le fichier de configuration.

Copier le fichier /usr/share/doc/rtorrent/examples/rtorrent.rc dans votre dossier personnel.

cp /usr/share/doc/rtorrent/examples/rtorrent.rc ~/.rtorrent.rc

Puis Éditez le fichier.

Voici une configuration basique de ce fichier. Pour plus de détails, consultez la page de manuel de rTorrent.

# Fichier de configuration de rtorrent.
# Par défaut, c'est le fichier ~/.rtorrent.rc
 
# Limites des taux de téléchargement en réception et en envoi. "0" équivaut à aucune limite.
#download_rate = 500
#upload_rate = 150
 
# Répertoire qui contient les fichiers téléchargés.
directory = ~/torrent/data
 
# Répertoire où rtorrent stocke l'état de téléchargement des torrents.
session = ~/torrent/session
# Utilisez un chemin //relatif// si vous êtes susceptible de lancer plusieurs
# instances de rtorrent ! Commentez la ligne précédente et décommentez celle-ci :
#session = ./session
 
# Ports utilisables par rtorrent (utilisez deux fois la même valeur pour utiliser tout le temps ce port)
port_range = 6881-6999
port_random = no
 
# Vérification des données à la fin du téléchargement
check_hash = yes
 
# Ce répertoire contient les fichiers .torrent.
# Dès qu'un nouveau .torrent y est ajouté, le téléchargement commence.
schedule = watch_directory,15,15,load_start=~/torrent/torrent_active/*.torrent
 
# Dès que le téléchargement est achevé, le fichier est déplacé dans le
# répertoire ~/torrent_finis.
# Pour les versions récentes de rtorrent (0.8.4 et supérieures), utilisez la ligne suivante :
#system.method.set_key = event.download.finished,move_complete,"execute=mv,-u,$d.get_base_path=,~/torrent_finis/;d.set_directory=~/torrent_finis/"
# Pour les versions 0.7.7 de 0.8.3, utilisez la ligne suivante :
#on_finished = move_complete,"execute=mv,-u,$d.get_base_path=,~/torrent_finis/;d.set_directory=~/torrent_finis/"
 
# Activation de DHT pour les torrents sans trackers.
# Il est obligatoire de définir un répertoire de session (voir plus haut).
dht = auto
 
# Port UDP pour l'utilisation de DHT.
dht_port = 6880
 
# Forcer l'utilisation de transactions chiffrées, pour ne recevoir et n'envoyer que des données protégées.
# En revanche, les identités du l'expéditeur et du destinataire restent visibles.
encryption = allow_incoming,require,require_rc4
Il faut penser à ouvrir les ports utilisés par rtorrent dans iptables. Les ports définis dans port_range & dht_port.

Pour lancer rtorrent, tapez dans un terminal :

rtorrent
rtorrent vérifie à chaque démarrage le hash de vos fichiers. Ceci peut être très long et monopoliser des ressources importantes si vous avez un grand nombre de fichiers en seed. Pour éviter cela éditez votre fichier .rtorrent.rc et n'oubliez pas de créer un dossier torrent et sous-dossier session dans votre home.
# Default session directory. Make sure you don't run multiple instance
# of rtorrent using the same session directory. Perhaps using a
# relative path?
session = ~/torrent/session

Ces modifications permettront de conserver vos préférences.

Vous pouvez ajouter des fichiers *.torrent de deux façons :

  • En pressant, dans rtorrent, la touche backspace, vous pouvez entrer le chemin complet du torrent ou bien une url du torrent.
  • En enregistrant directement le torrent dans le répertoire que vous avez indiqué dans votre fichier de configuration avec la commande watch_directory (dans le fichier de configuration plus haut, il s'agit du répertoire /home/nom_utilisateur/torrent/torrent_active/)
Les combinaisons de touches

Pour agir sur un torrent, vous devez le sélectionner (avec les touches haut et bas). Le torrent sélectionné est indiqué par 3 étoiles sur le côté gauche.

  • Pour mettre en pause un torrent, pressez ctrl+d.
  • Pour relancer un torrent en pause, pressez ctrl+s.
  • Pour retirer un torrent, vous devez presser deux fois ctrl+d : il se met en pause la première fois, puis est effacé la deuxième.
  • Pour donner la priorité à un morceau du fichier (ou ne pas le télécharger), appuyez deux fois sur la touche « flèche droite », sélectionnez le fichier qui vous intéresse, puis pressez la touche « Espace ».
  • Pour que le torrent ignore/prenne en compte les commandes du fichier de configuration (telles que move_complete dans l'exemple), pressez I.
  • Pour modifier les taux limites d'envoi et de réception :
    • a / s / d : Augmente le taux en envoi de 1 / 5 / 50 Ko
    • A / S / D : Augmente le taux en réception de 1 / 5 / 50 Ko
    • z / x / c : Diminue le taux en envoi de 1 / 5 / 50 Ko
    • Z / X / C : Diminute le taux en récption de 1 / 5 / 50 Ko
    • pour demander le download d'une peer : ^x puis d.add_peer=xxx.xxx.xxx.xxx:port (^ veut dire Ctrl, remplacer xxx… par l'ip de la peer et port par le numero du port utilisée par la peer)
  • Pour quitter rtorrent, pressez ctrl+q.
Signification des informations données par rtorrent

Voici l'exemple d'un torrent :

*  ubuntu-11.04-install-i386.iso
* Torrent:  161.6 /  617.2 MB Rate:   1.1 /  41.3 KB Uploaded:     5.1 MB [24%]  0d  3:09 [TI R: 0.03]
*

Voici sa signification :

ubuntu-11.04-install-i386.iso 

Nom du fichier téléchargé.

Torrent: 161.6 / 617.2 MB

Nombre de Mo déjà téléchargés / nombre total du torrent.

Rate: 1.1 / 41.3 KB

Vitesses de téléchargement en envoi et en réception.

Uploaded: 5.1 MB

Nombre de Mo déjà envoyés.

[24%]

Pourcentage du torrent déjà téléchargé.

0d 3:09

Estimation du temps restant (ce chiffre se fonde sur la vitesse courante en réception du téléchargement). Si la vitesse en réception reste la même, le téléchargement sera terminé dans 0 jours, 3 heures et 9 minutes.

T

Indique que le torrent a été chargé à l'aide d'un fichier *.torrent stocké localement (le flag n'est pas présent lorsque le fichier torrent est chargé par le biais d'une URL)

I

Indique que le torrent ignore les commandes (telles que stop_on_ratio, move_complete)

R: 0.03

Indique le pourcentage de partage (share ratio) : c'est le nombre de données envoyées par rapport au nombre de données reçues. Ici, vous avez jusqu'ici envoyés 5.1 Mo et vous avez reçu 161.6 Mo, vous avez donc partagé 3 % du torrent.

... avec dtach

Voici un petit script qui permet de lancer rtorrent au démarrage de la distribution tout en se laissant la possibilité d'accéder à l'interface console.

Ensuite dans /etc/init.d/rtorrentd on écrit :

#!/bin/sh -e
#
### BEGIN INIT INFO
# Provides: rtorrentd
# Required-Start: $network $syslog
# Required-Stop: $network
# Default-Start: 2 3 5
# Default-Stop: 0 1 6
# Description: Démarrer/arrêter rtorrent sous forme de daemon.
### END INIT INFO
user=
NAME=rtorrentd
SCRIPTNAME=/etc/init.d/$NAME
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
# path du fichier temporaire
TMP=/tmp/rtorrent.dtach
# user qui lance le torrent
 
# chemin vers fichier conf
CONF=/home/${user}/.rtorrent.rc
 
start() {
        echo -n $"Starting $NAME: "
        su -l ${user} -c "dtach -n $TMP rtorrent -n -o import=$CONF"
        chmod 666 /tmp/rtorrent.dtach
        echo "started"  
}
 
stop() {
        echo -n $"Stopping $NAME: "
        killall -r "rtorrent"
        echo "stopped"
}
 
restart() {
 
        if [ "$(ps aux | grep -e 'rtorrent' -c)" != 0  ]; then
        {
                stop
                sleep 5
        }
        fi
        start
}
 
 
case $1 in
        start)
               start
        ;;
        stop)
                stop
        ;;
        restart)
                restart
        ;;
        *)
                echo "Usage:  {start|stop|restart}" >&2
                exit 2
        ;;
esac
N'oubliez pas de renseigner compléter "user=" par votre nom d'utilisateur.

Pensez à rendre votre script exécutable :

sudo chmod +x /etc/init.d/rtorrentd

On termine avec la commande suivante pour indiquer que ce script doit s'exécuter au démarrage :

​sudo ​update-rc.d ​rtorrentd ​defaults 99

Maintenant, à chaque démarrage du système, rtorrent se lancera automatiquement.

Pour pouvoir accéder à l'interface console il suffit d'utiliser la commande :

dtach -a /tmp/rtorrent.dtach -r winch
Vous pouvez créer un alias pour exécuter plus facilement la commande précédente.

Pour détacher ensuite l'interface console il suffit de

  • en qwerty: taper CTRL + \
  • en azerty: taper CTRL + MAJ + 4
  • mac avec clavier suisse, le backslash se fait avec Maj + Alt + 7
  • Ctrl + $

…avec screen

Screen est un outil plus répandu que dtach, il n'est pas aussi léger mais offre plus de fonctionnalités. Dans /etc/init.d/rtorrent-daemon on écrit :

#!/bin/sh -e
# Start/Stop rtorrent sous forme de daemon.
user=
NAME=rtorrent-daemon
SCRIPTNAME=/etc/init.d/$NAME
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
 
case $1 in
        start)
                echo "Starting rtorrent... "
                su -l ${user} -c "screen -fn -dmS rtd nice -19 rtorrent"
                echo "Terminated"
        ;;
        stop)
                if [ "$(ps aux | grep -e '.*rtorrent$' -c)" != 0  ]; then
                {
                        echo "Shutting down rtorrent... "
                        killall -r "^.*rtorrent$"
                        echo "Terminated"
                }
                else
                {
                        echo "rtorrent not yet started !"
                        echo "Terminated"
                }
                fi
        ;;
        restart)
                if [ "$(ps aux | grep -e '.*rtorrent$' -c)" != 0  ]; then
                {
                        echo "Shutting down rtorrent... "
                        killall -r "^.*rtorrent$"
                        echo "Starting rtorrent... "
                        su -l ${user} -c "screen -fn -dmS rtd nice -19 rtorrent"
                        echo "Terminated"
                }
                else
                {
                        echo "rtorrent not yet started !"
                        echo "Starting rtorrent... "
                        su -l ${user} -c "screen -fn -dmS rtd nice -19 rtorrent"
                        echo "Terminated"
                }
                fi
        ;;
        *)
                echo "Usage: $SCRIPTNAME {start|stop|restart}" >&2
                exit 2
        ;;
esac
N'oubliez pas de compléter "user=" par votre nom d'utilisateur.

Pensez à rendre votre script exécutable:

sudo chmod +x /etc/init.d/rtorrent-daemon

On termine avec la commande suivante pour indiquer que ce script doit s'exécuter au démarrage :

​sudo ​update-rc.d ​rtorrent-daemon ​defaults 99

Maintenant, à chaque démarrage du système, rtorrent se lancera automatiquement.

Pour pouvoir accéder à l'interface console on utilise la commande:

stty stop undef; stty start undef; screen -r rtd
Vous pouvez vous créer un script ou un alias pour exécuter plus facilement la commande précédente.

Pour détacher ensuite l'interface console il suffit de taper Ctrl + a puis d .

…avec crontab

Dans la crontab de l'utilisateur en lançant dtach. L'utilisateur torrent lancera le dtach à chaque démarrage de la machine. C'est simple, efficace, mais un peu brutal.

sudo crontab -e -u torrent

On rajoute cette ligne

# Start rtorrent in a detached session @reboot TERM=xterm dtach -n ~/torrents/rtorrent rtorrent

Ce qui fait toute la puissance de rTorrent est son API : xmlrpc. Elle permet a un logiciel client de se connecter à rTorrent et à fournir une interface en se basant sur le moteur du logiciel. Cette flexibilité, obtenu à un coût très raisonnable (installation du paquet rtorrent), permet d'utiliser rTorrent de multiples façons. Il peut être nécessaire d'installer pour ces clients mod_scgi : libapache2-mod-scgi (Disponible uniquement sur Ubuntu 18.04 1))

Interfaces "Web"

  • rutorrent est une interface web en php. Elle est basée sur l'apparence (très agréable au demeurant) de uTorrent, le logiciel windows.
  • flood est une interface moderne écrite en Node.js spécifiquement pour rTorrent, minimaliste et très fiable.

Contributeurs : Yoann, Samaga, Flayor, Geek Spirit, Simtris.


  • rtorrent.txt
  • Dernière modification: Le 11/09/2022, 11:36
  • par moths-art