#!/bin/bash
declare -i count=0
MAXTESTCOUNT=2
for i in {1..$MAXTESTCOUNT} ;do
ping -c 2 -i 1 baidu.com
#ping -c 2 -i 1 test1.com
if [ $? -ne 0 ]; then
count=`expr ${count} + 1`
fi
done
if [ $count -ge $MAXTESTCOUNT ]; then
if [ -f /root/rb.flag ]; then
# get interval
declare -i interval=0
if [ -f /root/interval.reboot ]; then
interval=`cat /root/interval.reboot`
else
interval=300
fi
# check interval
cur=`date +%s`
last=`cat /root/rb.flag`
sub=`expr $cur - $last - $interval`
if [ $sub -gt 0 ]; then
#update interval and the time of the last rebooted, and reboot
if [ $interval -lt 1800 ]; then
interval=`expr $interval + 300`
echo $interval > /root/interval.reboot
fi
now=`date +%s`
nexttimepoint=`expr $now + $interval`
echo $nexttimepoint > /root/rb.flag
echo "reboot now"
reboot -f
else
exit 0
fi
else
echo "reboot now"
date +%s > /root/rb.flag
reboot -f
fi
else
rm -f /root/rb.flag /root/interval.reboot
fi