|
用一个orangepi总是断网,终网上找了很多,总不能如愿,终google了一个,分享一下:
#!/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="baidu.com sohu.com 223.5.5.5 223.6.6.6"
# 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
结果如下:
2021-11-16.14:00:02 Ping baidu.com OK.
2021-11-16.16:00:02 Ping baidu.com OK.
2021-11-16.18:00:02 Ping baidu.com OK.
2021-11-16.20:00:02 Ping baidu.com OK.
2021-11-16.22:00:02 Ping baidu.com OK.
2021-11-17.00:00:02 Ping baidu.com OK.
2021-11-17.02:00:02 Ping baidu.com OK.
2021-11-17.04:02:14 All pings failed. Resetting interface em0.
2021-11-17.04:05:36 All pings failed twice. Rebooting...
2021-11-17.06:00:02 Ping baidu.com OK.
|
|