1. shell监控网卡状态,故障时自动重启网卡 http://blog.slogra.com/post-425.html
cat fix_eth0.sh
#!/bin/bash check_and_fix_eth0_link() { date="`date '+%Y-%m-%d %H:%M:%S'`" # step3 : if have ip, ping $dns lost_rate=`ping -c 8 -w 8 $dns -I $eth0 | grep 'packet loss' \ | awk -F'packet loss' '{ print $1 }' \ | awk '{ print $NF }' | sed 's/%//g'` # step4: if ping dns failed, fix the link of $eth0 if [ $lost_rate -eq 0 ] then echo "network_ok $date $dns $dev" >>/root/network_ok.log elif [ $lost_rate -le 100 ] then echo "network_error $date $dns $dev" >>/root/network_error.log ifconfig $usb0 down sleep 1 ifconfig $usb0 up fi } eth0="eth0" usb0="usb0" dns="61.139.2.69" touch /root/network_ok.log touch /root/network_error.log while [ 1 ] do # step 1 : test if $eth0 have ip ipaddr=` /sbin/ifconfig $eth0 | grep "inet addr" | awk '{ print $2}' | awk -F: '{print $2}' ` if [ ! -n "$ipaddr" ] then # step2 : if have no ip, reset the $eth0, maybe the "udhcpc -i $eth0 ?" echo " $0: NO IP Addr" /etc/init.d/networking restart else check_and_fix_eth0_link; fi sleep 10 done