Configuration de rTorrent



Voici donc le deuxième billet de la saga dédiée à rTorrent. Comme le premier billet ne traitait que de l'installation, des raccourcis clavier et la création d'un démon, je publie celui-ci en même temps afin de couvrir l'aspect configuration.

Les réglages simples

Les options qui suivent peuvent être utilisées dans le fichier ~/.rtorrent.rc
Il y a bien trop d'options disponibles pour que je dresse une liste exhaustive. Je vais donc tâcher de ne décrire que les commandes les plus utiles,

Réglages généraux

  • port_range = a-b : Ouvre les ports à partir de a jusqu'à b.
  • port_random = yes | no : Ouvrir un port d'écoute aléatoire dans le rang choisi.
  • check_hash = yes | no : Vérifier le hash du torrent une fois qu'il à été terminé.
  • directory = répertoire : Le répertoire où sont téléchargés les fichiers
  • session = répertoire : Ici seront stockés les infos liées aux torrents. Évite en autres le re-hashage des torrents au redémarrage de rTorrent.
  • key_layout = qwerty|azerty|qwertz|dvorak : Cette option permet de préserver la cohérence des raccourcis clavier dans différents formats.
  • encryption = option,... : Par défaut sur none. Actuellement, pour être au mieux encapsulé, il vous faut procéder à des handcheck chiffrés (require), chiffrer les connections sortantes (try_outgoing), n'accepter que les communications entrantes chiffrées (allow_incoming) et n'utiliser que l'algorithme de chiffrement RC4 (require_RC4).
    Enfin, sachez que l'algorithme plaintext (prefer_plaintext) n'obfusce que l'en-tête des paquets bittorent, et reste donc potentiellement sujet au traffic shaping, tandis que RC4 protège l'en-tête des paquets AINSI que les données utiles.

Réglages de connexion

  • upload_rate / download_rate = Ko : Débits d'upload / download (0 pour sans limites)
  • max_peers = valeur : Nombre de clients maximum auquels se connecter par torrent.
  • tos = default|lowdelay|throughput|reliability|mincost : En prévilégiant lowdelay, vous devriez vous connecter en priorité à des peers qui sont proche (architecturalement parlant). Vous aurez donc plus de chances de vous connecter à des personnes du même FAI, et donc d'avoir des débits plus élevé. Toutefois, la tos n'est pas supporté par tous les nœuds de l'internet, donc efficacité moyenne.

Réglages relatifs au dht

Dht signifie en français "table de hachage distribuée". On peut le comparer à un annuaire, qui est stocké chez tous les membres utilisant le dht. Cet annuaire permet de retrouver tous les peers qui possèdent les fichiers du torrent concerné, et ainsi de se passer d'un tracker centralisé (tout le monde participe au référencement des peers).

  • dht = disabled|off|auto|on : disable désactive le dht. Off désactive le serveur dht, mais vous êtes client. Auto l'active ou le désactive lorsque nécessaire. On l'active en permanence.
  • dht_port = number : Le port d'écoute (en UDP). Par défaut: 6881.

Les couleurs

C'est bien beau d'avoir appliqué un patch pour les couleurs, mais aussi faudrait-il l'utiliser. Cela se fait le plus simplement du monde:
# Color / Canvas patch
done_fg_color = 2 
active_fg_color = 1 
Les torrent incomplets et arrêtés seront en rouge foncé.
Les torrent incomplets et en marche seront en rouge clair.
Les torrent complets et arrêtés seront en vert foncé.
Les torrent complets et en marche seront en vert clair.



Les réglages avancés

Ici l'enjeu est plus intéressant, car les réglages suivants sont des fonctions effectuées périodiquement.

Programmer des débits de téléchargement

Ici, nous allons associer l'option "download_rate" avec la fonction schedule. Cette fonction s'utilise ainsi:

schedule = id,start,interval,command

Id est une description de votre choix. Start est le moment où se déclenche la commande, tandis que l'intervalle est le temps au bout duquel la commande est répétée.
Vous pouvez utiliser un format de temps tel que : jj:hh:mm:ss. Par exemple, pour commencer une tâche tous les jours à 18h, nous utiliserions pour "start" et "interval" 18:00:00,24:00:00.

Maintenant, supposons que la journée nous voulions télécharger à plein débit, tandis que le soir, nous n'allouons qu'une bande passante de 30 Ko/s.
schedule = debit_jour,01:00:00,24:00:00,download_rate=0
schedule = debit_soir,17:00:00,24:00:00,download_rate=30

Se faire envoyer des mots doux

Il s'agit ici d'être tenu au courant de la fin des téléchargements par un email. Pour cela, nous ferons appel à un script depuis .rtorrent.rc:
# Le seul argument pour rtorrent_mail.sh est le nom du fichier completé (d.get_name)
system.method.set_key = event.download.finished,notify_me,"execute=~/rtorrent_mail.sh,$d.get_name="
Le script qui sera appelé doit être connu grâce à la variable $PATH. Par exemple /usr/local/bin.
# vim /usr/local/bin/rtorrent_mail.sh
Puis inscrivez les lignes suivantes, et rendez-le exécutable:
#!/bin/sh
echo "$(date) : $1 - Download completed." | mail -s "[rtorrent] - Download completed : $1" alerts@example.com
# chmod 755 /usr/local/bin/rtorrent_mail.sh

Guetter les nouveaux fichiers .torrents

rTorrent va regarder toutes les 30 secondes si vous ajoutez des torrents dans un répertoire en particulier, et va charger les torrent que vous y ajouterez.
# Observer les nouveaux torrents
schedule = watch_directory,1,30,"load_start=/.../.../*.torrent"

Déplacer les téléchargements achevés

Vous pouvez ainsi distinguer un répertoire de téléchargement en cours, d'un répertoire de téléchargements terminés. Cette séparation vous facilitera la récupération de vos fichiers.
# Sous GNU/Linux
system.method.set_key = event.download.finished,move_complete,"execute=mv,-u,$d.get_base_path=,~/telech_complets/;d.set_directory=~/telech_complets/"

# Sous MacOSX et les *BSD.
system.method.set_key = event.download.finished,move_complete,"execute=mv,-n,$d.get_base_path=,~/telech_complet/;d.set_directory=~/telech_complet/"

Arrêter un torrent après avoir atteint un ratio

Il existe 3 réglages spécifiques au ratio:
  • ratio.min=xxx -> (en %) le torrent s'arrête lorsque l'envois atteint ce ratio
  • ratio.upload=xxM et ratio.max=xxx -> (En Mo - en %) si le ratio.min est atteint, mais que la quantité de données envoyée est inférieure à ratio.upload, alors on s'arrête avec le ratio.max.
# Activer la gestion des ratios
ratio.enable=

# Changer les limites. Les valeurs par défaut devraient être suffisantes.
ratio.min.set=100
ratio.upload.set=20M
ratio.max.set=300

# Commandes a effectuer lorsque le ratio est atteint. (d.close arrête l'envoi, d.erase supprime le torrent (optionnel))
system.method.set = group.seeding.ratio.command, d.close=, d.erase=

Supprimer les données lorsqu'on enlève un torrent incomplet

Si vous ne voulez pas terminer un téléchargement pour une raison où une autre, vous n'aurez pas besoin de supprimer les fichiers temporaires à la main. rTorrent s'en chargera lui-meme.
# Active la suppression pour tous les torrents chargés depuis ce repertoire.
schedule = watch_directory,1,30,"load_start=/.../.../*.torrent,d.set_custom2=1"

# Effacer custom2 lorsque le téléchargement est complet.
system.method.set_key = event.download.finished,set_done_var,d.set_custom2=

# Effacer les données d'un téléchargement qui est
# supprimé alors qu'il possede toujours custom2 affecté.
system.method.set_key = event.download.erased,rm_files,"branch=d.get_custom2=,\\"execute={rm,-rf,--,$d.get_base_path=}\\""

Exemple d'un fichier de configuration ainsi obtenu

Pour illustrer cet exemple, j'ai créé l'arborescence suivante dans mon home:
Downloads
   `- torrents
   `- session
   `- temp
   `- complets
Le fichier exemple peut être trouvé par ici. Pensez à renommer le fichier en .rtorrent.rc et à le déplacer dans votre home.

Le mot de la fin

Ici s'achève la première partie de cette saga dédiée à rTorrent. Il y a eu beaucoup de traductions et quelques adaptations à effectuer. J'espère que ces deux premiers billets vous auront éclairé sur l'utilisation de rTorrent.
Les billets qui suivront vous expliqueront comment installer une interface d'administration web, et comment optimiser le fonctionnement de rTorrent.

Liens utiles

Vus : 2481
Publié par PPmarcel : 21