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
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.
Comentarios
Publicar un comentario