commit
b4f646e613
1 changed files with 62 additions and 0 deletions
@ -0,0 +1,62 @@ |
|||
#!/bin/sh |
|||
|
|||
#===================================================================== |
|||
# pingtest.sh, v1.0.1 |
|||
# Created 2009 by Bennett Lee |
|||
# Released to public domain |
|||
# |
|||
# (1) Attempts to ping several hosts to test connectivity. After |
|||
# first successful ping, script exits. |
|||
# (2) If all pings fail, resets interface and retries all pings. |
|||
# (3) If all pings fail again after reset, then reboots pfSense. |
|||
# |
|||
# History |
|||
# 1.0.1 Added delay to ensure interface resets (thx ktims). |
|||
# 1.0.0 Initial release. |
|||
#===================================================================== |
|||
|
|||
#===================================================================== |
|||
# USER SETTINGS |
|||
# |
|||
# Set multiple ping targets separated by space. Include numeric IPs |
|||
# (e.g., remote office, ISP gateway, etc.) for DNS issues which |
|||
# reboot will not correct. |
|||
ALLDEST="google.com yahoo.com 24.93.40.36 24.93.40.37" |
|||
# Interface to reset, usually your WAN |
|||
BOUNCE=em0 |
|||
# Log file |
|||
LOGFILE=/root/pingtest.log |
|||
#===================================================================== |
|||
|
|||
COUNT=1 |
|||
while [ $COUNT -le 2 ] |
|||
do |
|||
|
|||
for DEST in $ALLDEST |
|||
do |
|||
#echo `date +%Y%m%d.%H%M%S` "Pinging $DEST" >> $LOGFILE |
|||
ping -c1 $DEST >/dev/null 2>/dev/null |
|||
if [ $? -eq 0 ] |
|||
then |
|||
#echo `date +%Y%m%d.%H%M%S` "Ping $DEST OK." >> $LOGFILE |
|||
exit 0 |
|||
fi |
|||
done |
|||
|
|||
if [ $COUNT -le 1 ] |
|||
then |
|||
echo `date +%Y%m%d.%H%M%S` "All pings failed. Resetting interface $BOUNCE." >> $LOGFILE |
|||
/sbin/ifconfig $BOUNCE down |
|||
# Give interface time to reset before bringing back up |
|||
sleep 10 |
|||
/sbin/ifconfig $BOUNCE up |
|||
# Give WAN time to establish connection |
|||
sleep 60 |
|||
else |
|||
echo `date +%Y%m%d.%H%M%S` "All pings failed twice. Rebooting..." >> $LOGFILE |
|||
/sbin/shutdown -r now >> $LOGFILE |
|||
exit 1 |
|||
fi |
|||
|
|||
COUNT=`expr $COUNT + 1` |
|||
done |
Loading…
Reference in new issue