思路比较简单,就是利用定时任务cron定时去执行一个脚本去检测网格状态。
interfaces 文件是如下设置的:
首先在/var/spool/cron/root-crontab/建立相应的配置文件:test.crontab(哪些时间段去执行什么脚本)
内容如下:
*/5 * * * * /usr/share/test.sh
就是说每隔5分钟定时去执行/usr/share/test.sh这个脚本
test.sh可以实现任何任务。在这里是通过获取自己的网关,然后去ping这个网关,如果能ping通则代表网络正常,不做任何事情。
如果ping不通,则重启网卡。
conffile="/etc/network/interfaces"
test -f $conffile || exit 0
IP_ADDR=`cat $conffile |grep gateway |sed 's/^.*gateway//g'`
ping -c 2 $IP_ADDR
tag=$?
if [ $tag == 1 ];then
/etc/init.d/network restart
fi
interfaces 文件是如下设置的:
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 10.17.1.227
netmask 255.255.0.0
gateway 10.17.0.253