python net-snmp加载mibs
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python net-snmp加载mibs,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1712字,纯文字阅读大概需要3分钟。
内容图文
![python net-snmp加载mibs](/upload/InfoBanner/zyjiaocheng/799/1e3b048433704cf2a2d67c7199827718.jpg)
我正在使用net-snmp的python库在各种交换机上进行一些长查询.我希望能够加载新的mibs – 但我找不到任何关于如何执行此操作的文档.
PySNMP看起来相当复杂,需要我为每个mib创建Python对象(不能为我扩展);所以我坚持使用net-snmp的库(除了加载mib之外,这些库都不错).
我知道我可以在net-snmp命令行工具中使用-m和-M选项,并且有关于使用所有mib(和我)预编译net-snmp套件(./configure,make等)的文档假设进入图书馆);如果Python库不提供加载mib的能力,我是否至少可以配置net-snmp来提供我的python库访问mib而无需重新编译?
解决方法:
毕竟我找到了答案.从snmpcmd(1)手册页:
-m MIBLIST
Specifies a colon separated list of MIB modules (not
files) to load for this application. This overrides (or
augments) the environment variable MIBS, the snmp.conf
directive mibs, and the list of MIBs hardcoded into the
Net-SNMP library.
这里的关键部分是您可以像使用-m命令行选项一样使用MIBS环境变量…并且在库级别实现对此的支持.这意味着如果在启动Python之前定义MIBS环境变量,它将影响netsnmp库的行为:
$python
Python 2.7.2 (default, Oct 27 2011, 01:40:22)
[GCC 4.6.1 20111003 (Red Hat 4.6.1-10)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> import netsnmp
>>> os.environ['MIBS'] = 'UPS-MIB:SNMPv2-SMI'
>>> oid = netsnmp.Varbind('upsAlarmOnBattery.0')
>>> netsnmp.snmpget(oid, Version=1, DestHost='myserver', Community='public')
('0',)
>>>
请注意,您必须在调用任何netsnmp模块函数之前设置os.environ [‘MIBS’](因为这将加载库并且在此之后任何环境都会发生更改,这将不会产生任何影响).
您(显然)也可以在Python之外设置环境变量:
$export MIBS='UPS-MIB:SNMPv2-SMI'
$python
>>> import netsnmp
>>> oid = netsnmp.Varbind('upsAlarmOnBattery.0')
>>> netsnmp.snmpget(oid, Version=1, DestHost='myserver', Community='public')
('0',)
>>>
内容总结
以上是互联网集市为您收集整理的python net-snmp加载mibs全部内容,希望文章能够帮你解决python net-snmp加载mibs所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。