linux 根据ping结果重启网卡脚本

本程序为解决centos系统某些情况下网卡频繁故障导致不能上网而重启以后可以正常上网的现象。

本程序自动获取eth0网卡的网关地址,每5分钟ping一次网关,根据反馈结果进行重启网卡命令,

检测结束以后,会在屏幕显示检测结果,并将日志保存在/var/log/目录

作者为linux新手,某些命令可能又不对之处,请大家指导更正

#本程序为解决centos系统某些情况下网卡频繁故障导致不能上网而重启以后可以正常上网的现象。
#本程序自动获取eth0网卡的网关地址,每5分钟ping一次网关,根据反馈结果进行重启网卡命令,
#检测结束以后,会在屏幕显示检测结果,并将日志保存在/var/log/目录
#作者为linux新手,某些命令可能又不对之处,请大家指导更正
#By:Fenei
#QQ:407603129 Mail:[email protected]
#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

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。