dimanche 13 janvier 2013

Installer un client torrent (rtorrent)

Exercice 1

1) Installez le paquet rtorrent

2) Utilisez le code de l'annexe 1 pour créer le fichier de configuration ~/.rtorrent.rc

3) Créez les dossiers ~/torrent/data et ~/torrent/session nécessaire au fonctionnement de rtorrent

4) Lancez le téléchargement du torrent http://downloads.raspberrypi.org/images/raspbian/2012-12-16-wheezy-raspbian/2012-12-16-wheezy-raspbian.zip.torrent (La version de Debian dédié au Raspberry Pi)


Exercice 2

1) Installez le paquet dtach

2) En utilisant l'annexe 2, créez et configurez le fichier /etc/init.d/rtorrentd

3) Faites en sorte que rtorrent se lance automatiquement au démarrage du serveur

4) Lancer rtorrent en tant que tâche de fond


Exercice 3

1) En utilisant les alias, faites correspondre les alias aux commandes suivantes :

  • torrent = "dtach -a /tmp/rtorrent.dtach -r winch"
  • lancer_torrent = "/etc/init.d/rtorrentd start"
  • arreter_torrent = "/etc/init.d/rtorrentd stop"


Annexe 1

# 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

Annexe 2

#!/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

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
USER=$nom
# 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

Correction de l'exercice 1

On installe le paquet rtorrent :

$ apt-get install rtorrent

On créé le fichier ~/.rtorrent.rc et on y colle le code de l'annexe 1

$ nano ~/.rtorrent.rc

On créé les dossiers nécessaires au fonctionnement de rtorrent

$ mkdir ~/torrent/data
$ mkdir ~/torrent/session

Nous pouvons maintenant lancer rtorrent

$ rtorrent

backspace pour ajouter un fichier .torrent (url ou fichier .torrent local) et on valide par entrée

Maintenant le problème c'est que l'on est obligé de lancer rtorrent pour pouvoir télécharger un fichier. Nous allons voir dans l'exercice 2 comment lancer rtorrent en tâche de fond.


Correction de l'exercice 2

On install le paquet dtach

$ apt-get install dtach

On créé le fichier /etc/init.d/rtorrentd et on y colle le code de l'annexe 2

$ nano /etc/init.d/rtorrentd

On remplace la valeur de notre utilisateur USER et le chemin de notre rtorrent.rc précédemment créé dans CONF.

On accorde les droits au fichier

$ 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

Pour fermer rtorrent tout en le gardant en tâche de fond utilisez la combinaison CTRL+MAJ+8, pour le fermer complètement utilisez CTRL+Q

Nous allons voir dans l'exercice 3 comment faire pour simplifier les commandes afin qu'elles soient plus simples à retenir en utilisant les alias.


Correction de l'exercice 3

On édite le fichier ~/.bashrc pour gérer les alias (commandes raccourcies) de l'utilisateur

$ nano ~/.bashrc

On ajoute les commandes suivantes

alias torrent="dtach -a /tmp/rtorrent.dtach -r winch"
alias lancer_torrent="/etc/init.d/rtorrentd start"
alias arreter_torrent="/etc/init.d/rtorrentd stop"

On enregistre les modifications en exécutant :

$ source ~/.bashrc

Désormais pour démarrer rtorrent en tâche de fond on se contentera d'un simple :

$ lancer_torrent

Pour l'arreter un :

$ arreter_torrent

Pour afficher l'interface dans la console :

$ torrent

Informations complémentaires

Torrent en cours de téléchargement :

debian-6.0.6-i386-CD-1.iso
              67,7 /  648,0 MB Rate:   0,0 / 469,7 KB Uploaded:     0,0 MB [ 9%]  0d  0:21 [   R: 0,00]

debian-6.0.6-i386-CD-1.iso : Nom du fichier téléchargé

67,7 / 648,0 MB : Nombre de Mo déjà téléchargés / nombre total du torrent

Rate: 0,0 / 469,7 KB : Vitesses de téléchargement en envoi (0,0 KB/s) et en réception (469,7 KB/s).

Uploaded: 0,0 MB : Nombre de Mo déjà envoyés.

[ 9%] : Pourcentage du torrent déjà téléchargé.

0d 0:21 : 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 jour, 0 heure et 21 minutes.

[ R: 0,00] : Ratio (Upload / Download)


Raccourcies clavier

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

2 commentaires:

  1. Pouvez vous m'aider?

    dtach ne veut pas créer le ficher /tmp/rtorrent.dtach

    Quand je tape directement su -l pi -c "dtach -n $TMP rtorrent -n -o import=$CONF"
    j'ai ce message d'erreur: dtach: Invalid option '-n'

    Avez-vous une solution?

    RépondreSupprimer
    Réponses
    1. $TMP et $CONF sont des variables à définir, il est donc normal que cette commande plante.

      Supprimer