家里的路由中继别人的较远处一个TP-link来上网,但是距离太远,经常断线,断线异常时自己也不知道,于是写个个检测脚本来判断是否掉线
主要是ping上级路由
通了再ping 114dns没接触过shell脚本,逻辑都没怎么搞好直接上来一个while大循环加多重if
写得很烂,将就着用好了
echo 'hello world'
while test "1" = "1"
do
# do something
#第一次ping 上级192.168.1.1
if ping -w 1 -c 1 192.168.1.1
then #若通则ping 114
if ping -w 1 -c 1 114.114.114.114
then echo '01 Network ok'
else #再ping 115确认
if -w 1 -c 1 ping 114.114.115.115
then echo '02 Network ok'
#上级通,114,115均不通,重启网络
else /etc/init.d/network restart #重启网络,等待即可
echo 'F1: Network Fail'
fi
fi
#第一次ping上级192不通,第二次ping
else
if ping -w 1 -c 1 192.168.1.1
then #第二次ping上级通了
if ping -w 1 -c 1 114.114.114.114
then #ping 114也通了
echo '04 Network ok'
else #ping 114 不通再ping 115确认
if ping -w 1 -c 1 114.114.115.115
then #115可达
echo '05 Network ok'
#114,115均不通,重启网络
else /etc/init.d/network restart #重启网络,等待即可
echo 'F3: network Fail'
fi
fi
#第二次ping上级还是不通,直接ping 114试下
else
if ping -w 1 -c 1 114.114.114.114
then #114可达,网络正常
echo '03 network ok'
else #确实不通,唯有重启
/etc/init.d/network restart #重启网络,等待即可
echo 'F2: Network Fail'
fi
fi
fi
sleep 100
done
https://my.oschina.net/hoyho/blog/513505