#!/bin/bash
#定义流量单位
DW=kb/s
while :
do
#定义某一时间点的提取网卡流量数值,我这里的网卡是ens33
OLD_IN=$(cat /proc/net/dev | awk '$1~/ens33/{print $2}')
OLD_OUT=`cat /proc/net/dev | awk '$1~/ens33/{print $10}'`
sleep 5
#定义下一个时间点的提取网卡流量数值。
NEW_IN=$(cat /proc/net/dev | awk '$1~/ens33/{print $2}')
NEW_OUT=`cat /proc/net/dev | awk '$1~/ens33/{print $10}'`
#进行流量的计算,默认是Bytes,转换成kb/s
IN=$[$[$NEW_IN - $OLD_IN]/1024]$DW
OUT=$[$[$NEW_OUT - $OLD_OUT]/1024]$DW
sleep 5
#打印对应的值
echo -e "接收数据:${IN}\t发送数据:$OUT"
done
效果如图:
可以结合判断,进行报警。发送 邮件等。