
Como dice el titulo, automatizado (gracias a cron) y con una consola para monitorear las descargas. La consola luce algo así:
Este es el script que uso para descargar torrents a horas y días pre-determinadas, es un wrapper de btlaunchmanycurses.py y lo llamo en un cronjob a distintas horas y días. Demosle un vistazo y luego hablamos de las opciones:
#!/bin/bash DESCARGA_VELOCIDAD=1458 COMPARTE_VELOCIDAD=113 LIMPIAR_INTERVALO=5 MIN_PUERTO=27777 MAX_PUERTO=27799 TORRENTS_CARPETA="/home/TU_USUARIO_AQUI/descargas" DESCARGAS_DESTINO="/home/TU_USUARIO_AQUI/descargas" test -d $TORRENTS_CARPETA || mkdir -p $TORRENTS_CARPETA test -d $DESCARGAS_DESTINO || mkdir -p $DESCARGAS_DESTINO cd $TORRENTS_CARPETA nice /usr/bin/btlaunchmanycurses.py $TORRENTS_CARPETA \ --saveas_style 3 \ --upnp_nat_access 0 \ --minport $MIN_PUERTO \ --maxport $MAX_PUERTO \ --max_upload_rate $COMPARTE_VELOCIDAD \ --max_download_rate $DESCARGA_VELOCIDAD \ --auto_flush $LIMPIAR_INTERVALO
Para empezar la descarga solo basta poner los *.torrent en ~/descargas/ y el script hará el resto.
saveas_style:
Que nombre le va a poner a la descarga del torrent. Acepta hasta tres valores del 1 al 3:
upnp_nat_access: Intenta autoconfigurar un puerto UPnP en el router para que le haga foward al server. En mi caso uso la primera opción que lo deshabilita. Pero aquí tienen la lista completa de opciones:
minport: El puerto que va a usar para escuchar, en caso de que este puerto este ocupado o no este disponible, btlaunchmanycurses utilizara el siguiente puerto y así de manera sucesiva hasta llegar al maxport.
maxport: El número de puerto máximo en el que puede escuchar, el predeterminado es el 60000.
max_upload_rate: El máximo de ancho de banda a usar para compartir nuestros torrents, este acepta el numero máximo de kB/s o estas dos opciones:
max_download_rate: El máximo de kB/s que se pueden descargar, el valor predeterminado es 0 que indica que no tiene limites.
auto_flush: Los minutos entre cada flush al disco, el predeterminado es 0 que indica deshabilitado.
Una opcion que Uds pueden considerar es --random_port que toma los valores 0 o 1, esta opción le dice a btlaunchmanycurses que use un puerto aleatoriamente seleccionado dentro del rango de minport y maxport.
El Cronjob.
30 0 * * * /home/TU_USUARIO_AQUI/descargas/cron_torrent.sh >/dev/null 2>&1 8 8 * * * /home/TU_USUARIO_AQUI/descargas/killbtlaunch.sh >/dev/null 2>&1Como verán ejecuto dos scripts distintos, uno que levanta el torrent y otro que lo mata. veamos el primero, cron_torrent.sh:
#!/bin/bash screen -D -m -S "torrents-nightly" /home/TU_USUARIO_AQUI/descargas/download.shEste a las 12:30am creara un screen de nombre torrents-nightly y dentro de ese screen ejecutara el script que discutimos arriba el cual lo llamo download.sh. El segundo script que se ejecuta a las 8:08am termina las descargas. Aquí esta el cod igo fuente de killbtlaunch.sh:
#!/bin/bash
for X in `ps ax | grep -i -E 'btlaunchmanycurses|bittornado|irssi|torrents-nightly' | grep -v grep |awk '{print $1}'`
do kill -9 $X
done