标签归档:network

自动重启网卡

脚本内容:vi check_network.sh 

#!/bin/bash
date="`date '+%Y-%m-%d %H:%M:%S'`"
ip="173.208.x.x"
nic="eth0"
lost_rate=`ping -c 8 -w 8 $ip | grep 'packet loss' \
| awk -F'packet loss' '{ print $1 }' \
| awk '{ print $NF }' | sed 's/%//g'`
if [ $lost_rate -eq 0 ]
then
echo "network_ok $date $ip $nic" >>/root/network_ok.log
elif [ $lost_rate -le 100 ]
then
#echo "network_error $date $ip $nic"  //输出到窗口,因为不需要所以屏蔽了
#else
echo "network_error $date $ip $nic" >>/root/network_error.log
service network restart
fi  

chmod +x check_network.sh

然后在计划任务里添加

*/3 * * * * /bin/sh /opt/check_network.sh 

重启crond任务后,然后再创建

network_ok.log

network_error.log

这两个文件来查看网卡正常和有问题是什么时候了.

#!/bin/bash

ADDR1="192.168.1.101";
ADDR2="192.168.1.5";
ACCS1=$(ping -c 1 -s 1 -w 1 $ADDR1 | grep time | awk -F ',' '{print $2}' | awk '{print $1}');
ACCS2=$(ping -c 1 -s 1 -w 1 $ADDR2 | grep time | awk -F ',' '{print $2}' | awk '{print $1}');


if [[ $ACCS1 == 0* ]];
        then
                if [[ $ACCS2 == 0* ]];
                                echo "Host $ADDR2 is unavailable" >> $HOME/blackout_time.log
                        then
                                systemctl restart network
                                echo "Netwotk restart time by script1 - $(date +%Y-%m-%d_%k:%M:%S)" >> $HOME/blackout_time.log
                                sleep 20
                        fi
        fi

ping6 -c 1 -s 1 -w 1 ipv6.google.com | grep time | awk -F ‘,’ ‘{print $2}’ | awk ‘{print $1}’

ping6 -c 8 -w 8 ipv6.google.com | grep ‘packet loss’ | awk -F’packet loss’ ‘{ print $1 }’ | awk ‘{ print $NF }’ | sed ‘s/%//g’

#!/bin/bash
date="`date '+%Y-%m-%d %H:%M:%S'`"
ip="ipv6.google.com"
nic="eth1"

show=$(ping6 -c 8 -w 8 ipv6.google.com | grep 'packet loss' | awk -F'packet loss' '{ print $1 }' | awk '{ print $NF }' | sed 's/%//g')
if [[ $show == 0* ]];
then
updateip=`/usr/local/bin/ddns.sh`
echo "network_ok $date $ip $nic" >>/root/network_ok.log
elif [[ $show == *":"* ]];
then
echo "OK" >>/root/ok.log
elif [[ $show == 1* ]];
then
#echo "network_error $date $ip $nic"
#else
echo "network_error $date $ip $nic" >>/root/network_error.log
service network restart
fi