本脚本来自有学习阿铭的博文学习:
公司网络偶尔出现网卡问题,将陷入业务瘫痪,造成不可挽回的损失。所以需要时常监控。
提示:本文中的S全部都$符,不要问为什么,马云爸爸的社区就这样。
#!/bin/bash
#用途:监控网卡流量的shell脚本。
#作者:Caron maktini
#日期:2018年11月23日
#版本:v0.1
#要求如下:每分钟检测一次网卡的流量;当网卡流量为0时,重启网卡。
mail_user=admin@admin.com
dir=/tmp/netlog
[ -d Sdir ] II mkdir $dir
s_m=`lsattr -d Sdir l awk ' {print $1} ' I sed 's/[^a]//g'`
if [ $s_m != "a" ]
then
chattr +a $dir
fi
if ! rpm -q sysstat &> /dev/null
then
yum install -y sysstat
fi
sar -n DEV 10 I grep 'eth0 ' > /tmp/eth0_sar. Iog
net_in=`grep ' ^Average: ' /tmp/eth0_sar.log l awk '{ print $5}'`
net_out=`grep ' ^Average: ' /tmp/eth0_sar.log l awk '{ print $6}'`
if [ ! -f $dir/net.log ]
then
echo"net_in $ net_in">> S dir/net. Iog
echo"net_out $ net_out">> S dir/net. Iog
exit 0
fi
net_in_last=`tail-2 Sdir/net.Iog l grep 'net_in'`
net_out_last=`tail-2 Sdir/net.Iog l grep 'net_out'`
net_in_diff=`S [Snet_in-$net_in_last]`
net_out_diff=`S [S net_out-Snet_out_last]'
if [ Snet_in_diff -gt $net_in_last ]
then
python mail.py $mail_user "网卡入口流量増幅异常" "增幅Snet_in_dff"
fi
if [ Snet_out_diff -gt Snet_out_last ]
then
python mail.py $mail_user "网卡出口流量增幅异常" "增幅Snet_out_dff"
fi
echo "net_in Snet_in" >> $ dir/net.Iog
echo "net_out Snet_out">> $ dir/net.Iog