python snmp 交换机 配置文件_snmp 交换机 带宽计算 python

交换机设置SNMP协议,例为V2C版本,获取接口速度。

def getData():

shost = "192.168.0.2"

sDevport = "20"

sin1 = os.popen('snmpwalk -v 2c -c pass ' + \

shost + ' IF-MIB::ifHCInOctets.'+ \

sDevport).read()[:-1].split()[-1]

sout1 = os.popen('snmpwalk -v 2c -c pass ' + \

shost + ' IF-MIB::ifHCOutOctets.'+ \

sDevport).read()[:-1].split()[-1]

time.sleep(5)

sin2 = os.popen('snmpwalk -v 2c -c pass ' + \

shost + ' IF-MIB::ifHCInOctets.'+ \

sDevport).read()[:-1].split()[-1]

sout2 = os.popen('snmpwalk -v 2c -c pass ' + \

shost + ' IF-MIB::ifHCOutOctets.'+ \

sDevport).read()[:-1].split()[-1]

inT = round((float(sin2) - float(sin1))*8/1024/1024/5, 2)

outT = round((float(sout2) - float(sout1))*8/1024/1024/5, 2)

return inT, outT

踩坑列表

1)sDevport 端口不是设备的物理端口。如交换机25口,用命令snmpwalk -v 2c -c pass 192.168.1.2 |grep 25,查找 IF-MIB::ifDescr.XX。XX为扩展的口。

2)不要是用IF-MIB::ifInOctets.XX,用IF-MIB::ifHCInOctets.XX。前者为32位,后者为64位记录。前者容易满计算麻烦。

3)交换机返回的为累加统计,所以需要中间等待后,再次获取,计算两次的差。

4)返回的值为byte,需要先乘8,计算为bit然后再除1024,计算进位量。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值