本文共 1117 字,大约阅读时间需要 3 分钟。
v1使用的计数器是32位的,因此无法准确统计千兆接口的流量。而v2c是64位的,对于千兆接口就ok了。
snmp取回的接口流量数据是经过接口的总字节数,而不是实际的速率。若计算速率的话,需要取2次数据,然后用其差值除以2次取数据的间隔时间在乘以8即可。
对于snmp
v1,接口通过字节数的mib为IF-MIB::ifOutOctets和IF-MIB::ifInOctets
对于snmp
v2c,接口通过字节数的mib为IF-MIB::ifHCOutOctets和IF-MIB::ifInOutOctets
区别就是一个为32位,一个为64位。
计算速率的脚本如下:
##### cernet egress traffic #####
echo -n 'snmpwalk -v2c -c password 192.168.1.1
IF-MIB::ifHCOutOctets.5 | cut -d’ ‘ -f4' >
/tmp/result.tmp
echo -n ” ” >> /tmp/result.tmp
sleep 10
echo 'snmpwalk -v2c -c password 192.168.1.1 IF-MIB::ifHCOutOctets.5
| cut -d’ ‘ -f4' >>
/tmp/result.tmp
awk ‘{printf “Cernet egress rate: %d mbps\n”,($2-$1)*8/10000000}’
/tmp/result.tmp >>
/tmp/result.txt
##### cernet ingress traffic #####
echo -n 'snmpwalk -v2c -c password 192.168.1.1
IF-MIB::ifHCInOctets.5 | cut -d’ ‘ -f4' >
/tmp/result.tmp
echo -n ” ” >> /tmp/result.tmp
sleep 10
echo 'snmpwalk -v2c -c password 192.168.1.1 IF-MIB::ifHCInOctets.5
| cut -d’ ‘ -f4' >>
/tmp/result.tmp
awk ‘{printf “Cernet ingress rate: %d mbps”,($2-$1)*8/10000000}’
/tmp/result.tmp >>
/tmp/result.txt
输出结果如下:
Cernet egress rate: 41 mbps
Cernet ingress rate: 59 mbps
转载地址:https://blog.csdn.net/weixin_32552195/article/details/112052591 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!