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检测程序是否挂掉并自动重新运行的脚本

编写一个脚本替代应用程序的运行,也就是通过启动脚本来启动程序,并监测程序是否挂掉,若挂掉则重新运行

#!/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脚本自动检测网络掉线和自动重连,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

(0)

相关推荐

  • PowerShell脚本实现检测网络内主机类型

    最近一直在写一个自动检测网络内主机类型的脚本.基本功能可以实现判断主机操作系统类型,如果是域内的主机可以获取主机的硬件参数和性能参数,并判断是否存在网络设备.对一个运维人员来说往往需要尽快熟悉一个陌生的网络.所以这个脚本就很方便了,如果有更好的建议欢迎指正感谢! 复制代码 代码如下: ############################################ #Author:Lixiaosong #Email:lixiaosong8706@gmail.com #For:检测/24掩

  • Shell脚本实现检测某ip网络畅通情况(含短信报警功能)

    花了1天的时间写了一个检测某ip是否网络畅通的脚本,只检测网络是否畅通的功能很容易实现,但加了一些限制功能却不好实现. 复制代码 代码如下: #!/bin/bash #################################################################################### #本脚本放于异机,使用定时任务检测192.168.10.231是否网络畅通,如果不通则发短信告警  #为防止频繁收到短信,对发送短信做了如下限制:         

  • 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 是指pin

  • Linux Shell脚本实现检测tomcat

    Linux Shell脚本检测tomcat并自动重启 后台运行命令 sh xxx.sh & 查看后台任务:jobs 召唤到前台:fg jobs编号 可以删掉while循环的代码放到crontab里面定时执行,可以将脚本直接后台运行, #!/bin/bash while [ true ] do url="http://www.jb51.net/"; httpOK=`curl --connect-timeout 10 -m 60 --head --silent $url | awk

  • Shell脚本实现检测Cygwin最快的镜像站点

    这是一个 shell 脚本,所以首先你需要安装一个基本的 Cygwin 环境,当然还有 curl. 原理很简单,先从 cygwin.com 下载最新的 mirrors.lst 镜像列表,简单处理一下后,利用 curl 以此检测每个站点的连接速度,并将结果记录下来,最后再排个序,显示出最快的几个站点. 在使用的过程中,我发现检测到的最快的 mirror,实际上使用速度并不一定是最快的,这可能和服务器有关系,毕竟 curl 检测的时间只是读取 mirror 首页的时间.不过每个 mirror 一般都

  • Shell脚本实现在Linux系统中自动安装JDK

    A:本脚本运行的机器,Linux B:待安装JDK的机器, Linux 首先在脚本运行的机器A上确定可以ssh无密码登录到待安装jdk的机器B上,然后就可以在A上运行本脚本: 复制代码 代码如下: $ ./install-jdk.sh B的IP or: 复制代码 代码如下: $ ./install-jdk.sh "B的IP" "JDK的URI" 就可以在机器B上安装JDK.jdk使用的tar包需要用户自己设定DEFAULT_JDK_SRC=?,保证可以wget得到即

  • Shell脚本实现检测进程是否正在运行

    这里简单介绍一个自己写的检测某个进程是否存在的bash小脚本.直接上代码. 复制代码 代码如下: #!/bin/bash ps_out=`ps -ef | grep $1 | grep -v 'grep' | grep -v $0` result=$(echo $ps_out | grep "$1") if [[ "$result" != "" ]];then     echo "Running" else     echo

  • Shell脚本实现检测文件是否被修改过代码分享

    #!/bin/bash funmd5_1() { find /root/passwd -type f | xargs md5sum > /tmp/funmd5_1.log } funmd5_2() { find /root/passwd -type f | xargs md5sum > /tmp/funmd5_2.log } if [ ! -f /tmp/funmd5_1.log ];then funmd5_1 fi funmd5_2 diff /tmp/funmd5_1.log /tmp/f

  • 自动驾驶网络到底是什么

    1 .从宏观上理解自动驾驶网络 自动驾驶网络名字是从自动驾驶汽车的概念借用来的,这是业界的习惯叫法.虽然中文叫自动驾驶网络,但对应的英文却是Autonomous Driving Network,也有部分人使用Self-driving Network,而TMF用了Autonomous Network名字.Autonomous这个词是自治的意思,强调网络的自主决策能力.不过自治这个词仔细琢磨其实有点不合适,因为网络为人服务的,一定要按人的想法执行,哪来的自治?在自动驾驶汽车怎么称呼上,也有类似争议,

  • Linux下shell脚本监控Tomcat的状态并实现自动启动的步骤

    最近公司需要在Linux下监控tomcat的服务,一旦tomcat服务存在异常或者宕机,重启tomcat保证服务的正常运行,由于Linux下有Shell脚本可以实现此效果,下面是Linux下shell脚本监控Tomcat的状态并实现自动启动的步骤. 1.编写Shell脚本monitor.sh #!/bin/sh # func:自动监控tomcat脚本并且执行重启操作 # author:EagleHao # date:2018-04-08 # DEFINE # 获取tomcat进程ID(其中[gr

  • shell 脚本自动搭建nfs服务的方法示例

    本文介绍了shell 脚本自动搭建nfs服务的方法示例,分享给大家,具体如下: #vim /sh/zidong_dajian_nfs_fuwu.sh #!/bin/bash #name:zidong_dajian_nfs_fuwu.sh #path:/sh/ #update:2017-9-17 #测试网络是否通畅 ping -c 1 172.16.13.254 >/dev/null && echo **********网络ok********** #第一步:关闭selinux和防火墙

随机推荐