Tuesday, August 18, 2009

Automaticall reconnect the internet on disconnection

Due to certain problems with my ISP my net often gets disconnected. As you can guess there is nothing more frustrating then trying to do something and see that your internet is not working and then manually reconnecting the network. In order to fix this i wrote a simple script to monitor my network at an interval of one minute

vi ~/monitor.sh
export DISPLAY=:0
pingout=`ping www.google.com -q -c 5 -W 2`;
total=`echo $pingout| grep transmitted | sed "s/.*\([[:digit:]]\) received.*/\1/"`;
if [[ $total -lt 4 || $pingstatus -ne '0' || $total -eq '' ]]
logger "Internet connection not working.$total/5 pings. Reconnecting..."
notify-send -i modem "Reconnecting" "$total/5 pings failed. Reconnecting..."
poff -a;
pon dsl-provider;
logger "Internet connection working properly"
The script pings google.com and if less then four pings are successful in five attempts(60%) then a reconnection is performed.
To execute it periodically every minute i just added it to cron by simply executing
crontab -e

in a terminal and adding the following line at the end of the file
* * * * * ~/monitor.sh >/dev/null 2>&1