shell脚本⾃动检测⽹络掉线和⾃动重连
在ppp移植成功后,有时会出现ppp掉线等情况。这篇⽂章写了⼀个⾃动检测连接⽹络的解决⽅法。
创建⼀个shell脚本,在⾥⾯添加⼀下内容。(记得给操作权限)
#!/bin/sh
//根据你⾃⼰的shell类型来选择。
while true
//先做⼀个死循环
do
ping -c 3 -I ppp0 172.16.1.11 >/dev/null
//指定⼀个出⼝去ping服务器的局域⽹ip,将结果重定向到/dev/null⾥。
//-c 3 是指ping执⾏3次后结束。
/
/-w 3 是指ping执⾏3秒后结束。
if [  $? -eq 0  ];then
//[]的两边都要有空格隔开
//当ping成功了,它的返回值为0,什么也不⽤⼲。说明⽹络畅通。
//$?是⽤来获取函数返回值或者上⼀个命令的退出状态。
echo "ppp0 is ready"
sleep 30
//为了防⽌过度的占⽤cpu资源,选择延迟⼀段时间。
else
//当不成功说明这个⽹络或出⼝有问题。
echo "ppp0 is connecting"
pppd call connectvpn
//重新拨号,刷新这个出⼝。
ifconfig
sleep 30
fi
sleep 30
done
程序中加⼊了延时,是为了减少检测所占⽤的cpu资源。本脚本是⼀分钟检测⼀次⽹络状况。
当执⾏shell时出现syntax error: unexpected “then” (expecting “done”)报错是是因为编码格式不对,重新⼿打⼀遍就应该好了。
ps:linux检测程序是否挂掉并⾃动重新运⾏的脚本shell脚本返回执行结果
编写⼀个脚本替代应⽤程序的运⾏,也就是通过启动脚本来启动程序,并监测程序是否挂掉,若挂掉则重新运⾏
#!/bin/sh
while true
do
ps -ef | grep "$PWD/app/auto_run.sh" | grep -v "grep"
if [ "$?" -eq 1 ]
then
/home/root/app/auto_run.sh #启动应⽤,修改成⾃⼰的启动应⽤脚本或命令
echo "process has been restarted!"
else
echo "process already started!"
fi
sleep 10
done
总结
以上所述是⼩编给⼤家介绍的shell脚本⾃动检测⽹络掉线和⾃动重连,希望对⼤家有所帮助,如果⼤家有任何疑问请给我留⾔,⼩编会及时回复⼤家的。在此也⾮常感谢⼤家对⽹站的⽀持!
如果你觉得本⽂对你有帮助,欢迎转载,烦请注明出处,谢谢!

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。