代码: 全选
#!/bin/bash
sleep 10
Gateway=172.16.1.254
ping -c1 -w 100 ${Gateway} > /dev/null
#能ping通网关则直接退出
[ "$?" -eq 0 ] && exit
#ping不通网关时,则重启网络服务
/etc/init.d/networking restart
echo $(date '+%Y-%m-%d %H:%M')' 重启网络' >> /var/log/net_restart.log
#等待10秒钟,待网络重启完成
sleep 10
#获取机器启动时间
#uptime=$(date -d "$(uptime -s)" +%s)
#interval=$(($(date +%s)-$uptime))
interval=$(awk '{printf("%.0f", $1)}' /proc/uptime)
#启动超过6小时则重启,避免重复启动
[ $interval -lt 21600 ] && exit
#网络错误重启服务器
ping -c1 -w 100 ${Gateway} > /dev/null
[ "$?" -ne 0 ] && reboot
echo $(date '+%Y-%m-%d %H:%M')' 重启设备' >> /var/log/net_restart.log
每隔10分钟运行一次脚本:
代码: 全选
0,10,20,30,40,50 * * * * /etc/network/if-post-down.d/net_restart.sh