22 mar

Instalación de rtorrent en debian.

Bueno hoy voy a explicar como instalar el cliente de torrent, rtorrent, si que es verdad que hay miles de manuales para instalar transsmision, pero la idea de utilizar este cliente que es muy muy liviano y funciona a las mil maravillas, sobretodo en máquinas de poca potencia como rasppery, os diere que se saque esta solución es para consola…(vivamos en la consola :)) más adelante os explicare como integrarlo con rutorrent + nginx.

rtorrent

Es un cliente de torrent única y exclusivamente por consola, libtorrent es el núcleo, hecho en c++ y esta pensado para dar gran rendimiento y muy poca carga, genial para la situación actual.

Esta es la pagina del proyecto http://libtorrent.rakshasa.no/ y os diré que la documentación es sublime.

Primero de todo vamos actualizar el sistema operativo, todos los comandos están basados en debian.

sudo apt-get update; sudo apt-get upgrade

Ahora instalamos los paquetes necesarios

sudo apt-get install rtorrent screen

Utilizaremos el usuario normal para arrancar el rtorrent, así pues vamos a configurar el cliente, tener en cuanta que como supongo que tenéis un HD externo para las descargas, os recomiendo que lo formareis en ext3 o ext4, ya que el ntfs le sienta bastante mal, por la falta de recursos.

La configuración de rtorrent se hace en el fichero ~/.rtorrent.rc, en la home de nuestro usuario, este fichero tiene muchas opciones, como siempre os pongo las que yo utilizo que va bastante bien, podéis bajaros la plantilla de a rtorrent y trabajar sobre ella, lo puse en doc, ya que el worpress no me deja subir ficheros .rc, pero cambiarle la extensión.

vim  ~/.rtorrent.rc

Numero máximo y mínimo de peers

min_peers = 40
max_peers = 52

Same as above but for seeding completed torrents (-1 = same as downloading)

min_peers_seed = 10
max_peers_seed = 20

Maximum number of simultanious uploads per torrent.

max_uploads = 10

Velocidad de subida y bajada, es muy interesante el tema de “schedule”, ya que ahí podremos definir durante que horas limitaremos la descarga y durante que horas dejaremos que baje y suba a todo lo que pueda.

download_rate = 300
upload_rate = 50
schedule = throttle_1,01:00:00,24:00:00,download_rate=0
schedule = throttle_2,10:00:00,24:00:00,download_rate=300

Directorio donde irá descargando los archivos hasta que estén completos y donde irá grabando el control de la sesión de la bajada del torrent

directory = /mnt/descargas/incomplete
session = /mnt/descargas/incomplete

Esta linea esta muy bien, le diremos que nos mueva a otra carpeta aquellos torrent que hayan finalizado, la sintaxis de la linea es un poco compleja, pero si os fijáis rtorrent utiliza métodos para trabajar y hay miles que podemos encontrar en su pagina web, pero poder hacer cosas muy muy chulas.

system.method.set_key = event.download.finished,move_complete,;execute=mv,-u,$d.get_base_path=,/mnt/descargas/descargados;

Vamos a crear el directorio donde el irá mirando si existen torrents nuevos, en el caso de encontrar lo añadirá automáticamente.

schedule = watch_directory,5,5,load_start=/mnt/descargas/torrent/*.torrent

También vamos a poner un control, para evitar que nos quedemos sin espacio en el disco, en este caso, parara todos los torrents cuando el espacio sea inferior a 100mb

schedule = low_diskspace,5,60,close_low_diskspace=100M

También podemos controlar el ratio de envío, partiendo de la base que debemos compartir ya que es la base del sistema (COMPARTIR!!), yo dejo las descargas de las isos de linux, durante largas semanas para que otros se puedan beneficiar, pero bueno podemos poner un limite, para que rtorrent pare cuando llegue a unos valores.

Creo que siempre es bueno no quitar el fichero hasta conseguir un ratio de 2.0, así que esta es la linea para conseguir eso.

schedule = ratio,60,60,"stop_on_ratio=200,200M,2000";

Animo, que ya falta poco…

Le vamos a decir en que puertos tiene que escuchar, y claro esos puertos deben estar abiertos en el route

port_range = 49151-49151

Podemos decirle que verifique los archivos descargados a través de hash.

check_hash = yes

Y por ultimo los logs, para ver que esta haciendo y si da algún fallo.

log.execute=/mnt/usb/rtorrent.log

Bueno pues grabamos y ya tenemos el fichero.

Ahora vemos a utilizar screen, para lanzar el rtorrent.

Comandos básicos de screen.

Para abrir un terminal nuevo con screen simplemente debemos teclear screen, se nos muestra un mensaje, pulsamos enter y a continuación se nos abre el terminal de toda la vida.

La siguiente combinación de teclas para “desengancharnos” del terminal: CTRL-A + d. Es decir, pulsamos CTRL y A al mismo tiempo y a continuación D. Y se mos mostrará el mensaje “Detached”.

Para “reengancharnos” de nuevo a nuestro terminal mediante el comando screen -r que hace un reattach al terminal

Múltiples terminales con screen
Podemos abrir varios terminales simultáneamente con screen pero a la hora de “reengacharnos” con screen -r nos pedira el identificador del terminal además de mostrarnos una lista de PIDs asociados. Para “reengancharnos” a un terminal concreto debemos teclear screen -r PID, donde PID es el identificador del terminal que nos interesa.

Cerrar terminales
Para cerrar un terminal basta con ejecutar exit una vez estemos enganchados al terminal o bien teclear la combinación CTRL-A + C.

screen

Ahora ejecutamos rtorrent

./rtorrent

Y veremos algo así

Captura de pantalla de 2013-03-22 13:23:52rtorrent
Por supuesto no tendremos nada bajando, si colocamos algun torrent en nuestra carpeta watchdir, los veremos aparecer.

Comandos básicos
http://libtorrent.rakshasa.no/wiki/RTorrentUserGuide

Con esto ya tendremos nuestro rtorrent corriendo, para dejarlo en “segundo plano” haremos CTRL-A + d.

Si queremos que arranque automáticamente con el sistema podemos utilizar este rtorrentInit (como el otro caso, es un fichero de arranque tiene la extensión doc, gracias a wordpress), donde veremos modificar las lineas:

user=usuario

logfile=/mnt/descargas/rtorrentInit.log

Lo copias en /etc/init.d/ y lo añadimos al arranque con

update-rc.d mydaemon defaults

Ale a disfrutarlo!!