Unix/Linux 系统: 网络接口带宽管理(2)(2)
Traffic=`grep ${INT} /proc/net/dev`
Transmit=`echo ${Traffic}|awk '{print $1}'|cut -d: -f2`
Receive=`echo ${Traffic}|awk '{print $9}`
;;
*) echo "not support $OS operating system!"
exit 1;
;;
esac
case "$DuplexType" in
Full)
# 连接模式全双工时,需要分别计算发送和接收流量是否超出门限
if [ `expr $Transmit - $OLD_TRAN` -ge $BYTETHRES ] || \
[ `expr $Receive - $OLD_RECV` -ge $BYTETHRES ] ;then
Alarm="YES"
fi
;;
Half)
# 连接模式半双工时,需要合计计算发送和接收流量是否超出门限
if [ `expr $Transmit - $OLD_TRAN + $Receive - $OLD_RECV` \
-ge $BYTETHRES ] ;then
Alarm="YES"
fi
;;
*) echo "not support Duplex type!"
exit 1;
;;
esac
# 在日志中记录流量信息
echo "INT:${INT} TIME:`date +%Y%m%d%H%M%S` \
TRANS:${Transmit} RECV:${Receive} ALARM:${Alarm}" \
>> ${LogFile}
# 如果超出告警门限, 给管理员发送告警门限
if [ $Alarm = "YES" ];then
echo "INT:${INT} TIME:`date +%Y%m%d%H%M%S` \
TRANS:${Transmit} RECV:${Receive} ALARM:${Alarm}" \
>> mail.tmp
mail -s "Bandwidth Alert" root@localhost< mail.tmp
fi
# 设置下次循环前重值
OLD_TRAN=$Transmit
OLD_RECV=$Receive
Alarm="NO"
sleep $SEC
n=`expr $n + 1`
done
exit 0
- 最新评论
