shell查看并修复网络连接


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

 

posted @ 2016-11-14 11:40  oucaijun  阅读(953)  评论(0编辑  收藏  举报
下载TeamViewer完整版 下载TeamViewer