I used to have an occasionally unreliable internet connection. I wanted logs of exactly how unreliable it was and an easy way to have notice when it was back up.
cron to check online status once a minute and write the
result to a file. An easy way to check is to confirm that google.com will
reply to a ping (this does give a false negative in the unlikely
event that Google is down).
To run a script every minute, put a file in
/etc/cron.d containing the line
* * * * * root /root/bin/online-check
/root/bin/online-check is the following script:
#!/bin/sh # Check if computer is online by attempting to ping google.com. PING_RESULT="`ping -c 2 google.com 2>/dev/null`" if [ $? -eq 0 ] && ! echo "$PING_RESULT" | grep -F '64 bytes from 192.168.' >/dev/null 2>/dev/null then ONLINE="online" else ONLINE="offline" fi echo "`date '+%Y-%m-%d %T%z'` $ONLINE" >> /var/log/online.log