您的位置:首页 > 运维架构 > Linux

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

2015-04-17 14:58 1746 查看
本程序为解决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://babyfenei.blog.51cto.com/443861/1633875
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: