本程序为解决centos系统某些情况下网卡频繁故障导致不能上网而重启以后可以正常上网的现象。
本程序自动获取eth0网卡的网关地址,每5分钟ping一次网关,根据反馈结果进行重启网卡命令,
检测结束以后,会在屏幕显示检测结果,并将日志保存在/var/log/目录
作者为linux新手,某些命令可能又不对之处,请大家指导更正
#本程序为解决centos系统某些情况下网卡频繁故障导致不能上网而重启以后可以正常上网的现象。 #本程序自动获取eth0网卡的网关地址,每5分钟ping一次网关,根据反馈结果进行重启网卡命令, #检测结束以后,会在屏幕显示检测结果,并将日志保存在/var/log/目录 #作者为linux新手,某些命令可能又不对之处,请大家指导更正 #By:Fenei #QQ:407603129 Mail:babyfenei@qq.com #Ver 2015.4.17 #!/bin/sh clear #清空屏幕 time=‘date+%Y%m%d‘ #查询系统当前日期 echo | route -n | grep eth0 | grep UG | awk ‘{print $2}‘>/tmp/gateway.list cat /tmp/gateway.list | while read gateway #获取网卡eth0的网关信息,以便在后续步骤中检测网关通断情况 do echo "****************请稍等片刻,正在检测网络状态*********************" if ! ping -c 5 $gateway > /tmp/ping.log 2>&1 #将网关ping信息记录到/tmp/ping.log中 # ping -c 5 表示脚本运行以后ping网关5次 then echo "**************************************************************************">> /var/log/pingerror.log echo "现在时间是"$(date +%Y年%m月%d日%H:%M:%S ), "网络故障,将进行网卡重启操作!" echo "现在时间是"$(date +%Y年%m月%d日%H:%M:%S ), "网络故障,将进行网卡重启操作!" >> /var/log/pingerror.log tail -3 /tmp/ping.log >> /var/log/pingerror.log #将错误信息添加当前时间戳并记录到错误日志中 ifdown eth0 ifup eth0 echo "网卡重启成功,请检查网络是否可用!" #重启网卡命令 else echo "**************************************************************************">> /var/log/pingok.log echo "现在时间是" $(date +%Y年%m月%d日%H:%M:%S ),"网络链接正常,谢谢使用!" echo "现在时间是" $(date +%Y年%m月%d日%H:%M:%S ),"网络链接正常,谢谢使用!" >> /var/log/pingok.log tail -3 /tmp/ping.log >> /var/log/pingok.log fi rm -rf /tmp/ping.log rm -rf /tmp/gateway.list #删除程序运行过程中产生的临时文件 done
本文出自 “www.fenei.com” 博客,请务必保留此出处http://453861.blog.51cto.com/443861/1633875
原文地址:http://453861.blog.51cto.com/443861/1633875