#编写一个监控网卡的脚本
#1)每10分钟检测一次网卡ens32的流量
#2)如果流量为0,则重启网卡
#提示:使用sar-n DEV

#!/bin/bash

## 为了能够精确匹配关键字,需要设定语言为英语
LANG=en

## 检查sar命令是否存在,不存在需要安装对应的包
if ! which sar &>/dev/null
then
        echo "没有sar命令,使用yum安装"
        ## 通过安装sysstat包来安装sar命令
        yum install -y sysstat &>/dev/null || (echo "sar命令无法安装";exit 1)
fi

## 将eth32网卡1分钟的流量数据写入临时文件/tmp/ens32.log
sar -n DEV 1 60 |grep ens32 > /tmp/ens32.log

## n1为网卡接收的数据量
## n2为网卡发送的数据量

n1=`grep -i average /tmp/ens32.log | awk '{print $5}' |sed 's/\. //g'`
n2=`grep -i average /tmp/ens32.log | awk '{print $6}' |sed 's/\. //g'`

## 删除临时文件
rm -f /tmp/ens32.log

## 当接收和发送的数据量全部为0,说明网卡有问题了,需要重启网卡
if [ "$n1" == "000" ] && [ "$n2" == "000" ]
then
        echo "网卡ens32有问题,需要重启网卡"
        ifdown ens32 && ifup ens32
else
        echo "网卡ens32正常"
fi

<<'COMMENT'
关键知识点总结:
1)临时文件可以给我们带来很大便利,但不要忘记在脚本结束时删除
2)用if which xxx来判断某个命令在不在
3)使用 || 或者&&时,可以用()将多条命令作为一个整体
COMMENT