sábado, 25 de mayo de 2013

Desactiva los Torrents automáticamente cuando tu ADSL falla y estás con 3G

Nivel de dificultad: Medio.






Tengo un Router de Telefónica con puerto USB, al que se le puede conectar un pincho 3G que se activa automáticamente cuando la ADSL falla. Mi Home Server, una Raspberry Pi, tiene QBitTorrent ejecutándose continuamente, pero no me interesa que cuando se activa automáticamente mi conexión 3G, que es de Jazztel, QBitTorrent se meriende en un rato mi plan de datos. Así que he hecho un script simplón que me activa y desactiva QBitTorrent en base a la conexión que tengo.




#!/bin/bash
FIJO=Telefonica
TORRENT=qbittorrent-nox


while true
do
        IP=`curl -s checkip.dyndns.com | \
        grep -Eo "[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+" 2>/dev/null`
        if [[ -n "$IP" ]]; then
                ADSLISP=`whois $IP | grep -m 1 -o $FIJO`
        else
                ADSLISP="SinInternet"
        fi
        echo $ADSLISP
        PIDTORRENT=`pidof $TORRENT`

        if [[ "$ADSLISP" != "$FIJO" ]]; then
                echo No estoy ahora con $FIJO
                if [ $PIDTORRENT ]; then
                        echo $TORRENT está en marcha. Apagando:
                        killall $TORRENT
                else
                        echo $TORRENT ya está apagado
                fi
        else
                echo Mi IP es $IP y mi conexión es de $ADSLISP
                if [ ! `pidof $TORRENT` ]; then
                        echo $TORRENT no está en marcha. Arrancando:
                        nice -n 10 $TORRENT > /dev/null &
                fi

        fi
        sleep 30
done

Antes de ejecutar el script, asegurate que tienes los programas whois y curl instalados.

Además, en mi caso, como tengo Telefónica, la variable FIJO del script tiene el valor Telefonica. Si tienes otro proveedor de ADSL, tendrás que cambiar el valor de la variable adecuadamente. Para averiguar este valor, primero debes saber tu IP externa, y acto seguido, usar el siguiente comando para averiguar que valor vas a usar:

whois 1.2.3.4 

donde debes sustituir 1.2.3.4 por tu IP externa.

Busca una cadena identificativa que sea diferente a la que tenga tu pincho 3G. Por ejemplo, en el caso de las ADSL de Jazztel puedes usar el valor JAZZSEC. En el caso de ONO, ONO-MNT

Sustituye también el valor de la variable TORRENT por tu programa de torrents favorito, en mi caso es qbittorrent-nox .

El script presenta mensajes que te servirán para analizar lo que está haciendo. Cuando lo arranquemos automáticamente redirigiremos estos mensajes a  /dev/null para que no muestre nada.

Guarda este script en un archivo nuevo, por ejemplo, /usr/local/bin/qbtserver . Añade la siguiente línea a /etc/rc.local :

su -c "/home/pi/bin/qbtserver > /dev/null" pi &

Cuando arranques tu Home Server, arrancará automáticamente qbittorrent-nox siempre que tu ADSL esté en funcionamiento.

No hay comentarios:

Publicar un comentario