Servidor de descargas Transmission - Parte 3: Automatizar finalización

Terminal mostrando script de automatización de Transmission
2 min. Lectura
0 Vistas
0 Valoración

Una vez finalizada la descarga es fundamental para la filosofía P2P dejar el fichero compartiendo el máximo tiempo posible. Podemos hacer que, de manera automática, se deje de compartir al alcanzar el ratio deseado, y mover el fichero a una carpeta definitiva.

Creación del script de finalización

Una vez obtenido el ratio deseado, podemos hacer que Transmission ejecute un script moviendo el torrent a una carpeta definida para ello y borrándolo de la cola.

Las carpetas deberán tener acceso de lectura y escritura para el usuario Transmission.

sudo nano /usr/local/bin/finalized.sh
#!/bin/sh

MOVEDIR=/PATH/TO/MOVE
BASE_COMMAND="transmission-remote -n USUARIO:PASSWORD"

TORRENT_ID_LIST=$($BASE_COMMAND -l | sed -e '1d;$d;s/^ *//' | cut -d ' ' -f 1)

for TORRENT_ID in $TORRENT_ID_LIST
do
        NAME=$($BASE_COMMAND -t $TORRENT_ID -i | grep -i "Name:" | sed 's/^ *//' | cut -d ' ' -f 2-)
        PERCENT_COMPLETE=$($BASE_COMMAND -t $TORRENT_ID -i | grep -i "Percent Done:" | sed 's/^ *//' | cut -d ' ' -f 3)
        STATE=$($BASE_COMMAND -t $TORRENT_ID -i | grep -i "State:" | sed 's/^ *//' | cut -d ' ' -f 2)
        RATIO=$($BASE_COMMAND -t $TORRENT_ID -i | grep -i "Ratio:" | sed 's/^ *//' | cut -d ' ' -f 2)

        #echo "$NAME:$PERCENT_COMPLETE:$STATE:$RATIO"

        if [ "$PERCENT_COMPLETE" = "100%" ] && ( [ "$STATE" = "Stopped" ] || [ "$STATE" = "Finished" ] ); then
                telegram.sh "Torrent $NAME is completed"
                echo "Torrent $NAME is completed"
                $BASE_COMMAND -t $TORRENT_ID --move $MOVEDIR
                $BASE_COMMAND -t $TORRENT_ID -r
                telegram.sh "Torrent data moved and removed from transmission"
                echo "Torrent data moved and removed from transmission"
        fi
done

Hay que tener en cuenta modificar las dos primeras variables con los datos adecuados.

Integración con Telegram (opcional)

Además he añadido en el script original las siguientes líneas para recibir un mensaje por Telegram avisándome que la descarga ha finalizado. Para ello, necesitarás un bot de Telegram:

telegram.sh "Torrent $NAME is completed"
telegram.sh "Torrent data moved and removed from transmission"

Configuración de permisos

Damos acceso de ejecución:

sudo chmod +x /usr/local/bin/finalized.sh

Configuración de Transmission

Paramos el servicio:

sudo systemctl stop transmission

Editamos el fichero de configuración:

sudo nano /var/lib/transmission/.config/transmission-daemon/settings.json

Y modificamos las siguientes líneas:

"script-torrent-done-enabled": true,
"script-torrent-done-filename": "/usr/local/bin/finalized.sh",

Y arrancamos de nuevo:

sudo systemctl start transmission

Ya lo tenemos todo listo. Ahora cuando alcancemos el ratio seleccionado en Transmission, los ficheros se moverán a la carpeta elegida.

¿Te ha sido útil?

Ayúdame a mejorar con tu puntuación y comentarios.

0.0 (0 votos)
Jaume Ferré

Jaume Ferré

Soy un entusiasta de las nuevas tecnologías, apasionado por explorar su potencial innovador. Colecciono CDs en formato físico y disfruto creando mezclas musicales. Además, la fotografía es otra de mis pasiones, capturando momentos y expresiones con cada disparo. ¡Gracias por leerme!

💬 Comentarios

Los comentarios están gestionados por GitHub Discussions. Necesitas una cuenta de GitHub para participar. ¡Es gratis y rápido!