Intégration de rtorrent dans conky
Cet article provient de mon ancien site Internet.
Background
À l’époque où j’utilisais conky, j’ai voulu intégrer le monitoring de rtorrent. Les ressources à ce sujet ne manquent pas sur le Web, mais je n’ai pas trouvé de client qui me convienne vraiment. J’ai donc écrit le mien (en Perl, seul langage de script que je maîtrise, en attendant de me pencher sérieusement sur Python ou Ruby un de ces jours…).
Voilà une capture d’écran du résultat final :
La configuration de rtorrent
Bon là c’est très simple, il n’y a qu’une ligne à ajouter au fichier
.rtorrentrc
.
Là j’ai pris le port 4200 pour l’exemple, mais vous pouvez en choisir un autre si ça vous chante.
Attention : rtorrent doit avoir été compilé avec le
flag --with-xmlrpc-c
.
Le serveur XML-RPC
Ici le prérequis est d’avoir un serveur HTTP fonctionnel. Utilisant
personnellement lighttpd j’expliquerai la configuration pour ce dernier (tout
se passe dans le fichier lighttpd.conf
). Pour ceux qui utilisent
un autre serveur (Apache, nginx, …), reportez-vous à sa documentation (ou
jetez un œil
ici).
Il faut commencer par activer (donc décommenter la ligne correspondante ou
l’ajouter si elle n’est pas présente), si ce n’est pas déjà fait, le module
mod_scgi
dans la section server.modules
Ensuite, il ne reste plus qu’à créer le serveur XML-RPC en ajoutant cette section.
1 2 3 4 5 6 7 8 9 10 11 12 13 | $HTTP["url"] == "/RPC2" { scgi.server = °( "/RPC2" => ( "127.0.0.1" => ( "host" => "127.0.0.1", "port" => 4200, "check-local" => "disable", ) ) ) accesslog.filename = "/dev/null" } |
La directive accesslog.filename = "/dev/null"
permet d’éviter un
pourrissage en règle des logs par les requêtes incessantes de notre client. Il
faut également veiller à indiquer le même port que dans le
fichier .rtorrentrc
.
Pour connaître plus en détail la signification des options utilisées, je vous
renvoie sur
la doc
(qui est plutôt bien faite).
Redémarrez le serveur, et c’est parti !
Le client
Comme dit précedemment, j’ai écris le client en Perl. J’utilise le module
Frontier::Client
(disponible sur le
CPAN
) pour envoyer mes requêtes au serveur.
Le fonctionnement est très simple. Je commence par vérifier que rtorrent et le serveur sont lancés. Ensuite, je me connecte et je balance les requêtes qui vont bien en fonction des statistiques que je veux récupérer. La liste des commandes disponibles est ici.
Pour que le script fonctionne, il faut bien sûr modifier la constante server pour y mettre l’adresse de votre serveur XML-RPC. Vous pouvez aussi modifier les couleurs et les paliers à partir desquels les couleurs changent. Le script est assez court et j’ai essayé de le garder un maximum lisible (même pour du Perl :p) donc je pense que les parties à modifier sont assez évidentes.
Pour récupérer le client, c’est par ici.
conky
Et enfin conky. C’est vraiment trivial : un simple execpi
.
Pour un exemple de conkyrc
c’est par
là
(rien de bien sorcier comme je vous l’avais dit).