Més sovint del que voldríem, almenys a mi em passa, l’ADSL queda com “col·lapsada” i deixa de funcionar. La solució és ben fàcil, aixecar-te anar al router, reiniciar-lo i automàticament tornes a tenir internet.
El problema s’agreuja, quan tens algun petit servidor i estàs en remot treballant contra aquests serveis. Mai havia tingut el temps, però aprofitant una tarda “relaxada”, he buscat i adaptat un script per què una màquina linux estigui monitoritzant si té internet o no, i en el cas que pel que sigui no hagi internet reiniciï la interfície DSL del router de manera que torni a restablir el servei ADSL evitant haver d’anar a casa a reiniciar el router.
Requisits: una màquina linux a casa. En el meu cas una màquina amb debian.
Crearem un arxiu reset-dsl.sh i li afegirem el següent contingut:
#!/bin/bash
# Definim on volem fer ping potser 8.8.8.8, una ip pública o la IP del nostre servidor DNS
desti=8.8.8.8
if `ping -c 5 $desti> /dev/null` ;then
echo Destí està Online
#Tenim internet i ens dirà "Desí està online"
else
#No tenim internet per tant iniciarem el reinici del servei
echo Destí està Offline
echo Reiniciant ADSL
Router-DSL=1.2.3.4
#Aquí haurem d'introduïr la IP del nostre router d'internet
port=23
user=NomUsuari
#Aquí haurem d'introduïr el nom d'usuari administrador del nostre router: admin, 1234, adminttd, admintde... segons el prvoeïdor.
pass=CLAU
#Aquí la clau del nostre router.
cmd1=sh
cmd2="adsl connection --down"
cmd3="adsl connection --up"
cmd4=reboot
( echo open ${Router-DSL}
sleep 1
echo ${user}
sleep 1
echo ${pass}
sleep 1
echo ${cmd1}
sleep 2
echo ${cmd2}
sleep 2
echo ${cmd3}
sleep 2
echo ${cmd4} ) | telnet
fi
Amb aquest arxiu, tindrem automatitzada la connexió al nostre router ADSL i farà un reinici de la interfície DSL si aquesta no respòn.
Ara només ens faltarà modificar el crontab per què l’executi cada 15 minuts per exemple
crontab -e
*/15 * * * * /home/reset-dsl.sh
Potser per acabar de millorar-ho ens faltaria afegir que ens envii un correu electrònic un cop s’ha reiniciat per allò de tenir la estadística de quantes vegades s’ha de reiniciar l’equip al dia.