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 -w $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 ]
then
echo "network_ok $date $dns $dev" >>/root/network_ok.log
elif [ $lost_rate -le ]
then
echo "network_error $date $dns $dev" >>/root/network_error.log
ifconfig $usb0 down
sleep
ifconfig $usb0 up
fi
} eth0="eth0"
usb0="usb0"
dns="61.139.2.69" touch /root/network_ok.log
touch /root/network_error.log while [ ]
do
# step : 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
done