Python 如何将私有MIB文件转换为.py格式,以便在设备上执行GET/SET操作
我正在尝试编写一个脚本,在我的设备上执行GET/SET命令。当我尝试在sysDescr上执行GET操作(这是标准MIB SNMPv2的一部分)时,我设法得到了一个响应。 我曾尝试以几种不同的方式使用mibdump.py脚本,以便转换我的专有MIB文件,以便以后使用它们:Python 如何将私有MIB文件转换为.py格式,以便在设备上执行GET/SET操作,python,snmp,pysnmp,Python,Snmp,Pysnmp,我正在尝试编写一个脚本,在我的设备上执行GET/SET命令。当我尝试在sysDescr上执行GET操作(这是标准MIB SNMPv2的一部分)时,我设法得到了一个响应。 我曾尝试以几种不同的方式使用mibdump.py脚本,以便转换我的专有MIB文件,以便以后使用它们: 激活特定MIB文件上的mibdump.py(请参见结果),该文件的扩展名为.MIB,不带扩展名 c:\Program Files\Python35\Scripts>python mibdump.py SL-XPDR.mi
c:\Program Files\Python35\Scripts>python mibdump.py SL-XPDR.mib
Source MIB repositories: file:///usr/share/snmp/mibs, h ttp://mibs.snmplabs.com/a
sn1/@mib@
Borrow missing/failed MIBs from: h ttp://mibs.snmplabs.com/pysnmp/notexts/@mib@
Existing/compiled MIB locations: pysnmp.smi.mibs, pysnmp_mibs
Compiled MIBs destination directory: C:\Users\alpha_2.PL\PySNMP Configuration\mibs
MIBs excluded from code generation: RFC-1212, RFC-1215, RFC1065-SMI, RFC1155-SMI
, RFC1158-MIB, RFC1213-MIB, SNMP-FRAMEWORK-MIB, SNMP-TARGET-MIB, SNMPv2-CONF, SN
MPv2-SMI, SNMPv2-TC, SNMPv2-TM, TRANSPORT-ADDRESS-MIB
MIBs to compile: SL-XPDR
Destination format: pysnmp
Parser grammar cache directory: not used
Also compile all relevant MIBs: yes
Rebuild MIBs regardless of age: no
Do not create/update MIBs: no
Byte-compile Python modules: yes (optimization level 0)
Ignore compilation errors: no
Generate OID->MIB index: no
Generate texts in MIBs: no
Try various filenames while searching for MIB module: yes
Created/updated MIBs:
Pre-compiled MIBs borrowed:
Up to date MIBs:
Missing source MIBs: SL-XPDR
Ignored MIBs:
Failed MIBs:
c:\Program Files\Python35\Scripts>python mibdump.py C:\Program Files\Python35\Scripts\mibs
Source MIB repositories: file:///usr/share/snmp/mibs, file://C:\, file://c:\Prog
ram Files\Python35\Scripts\Files\Python35\Scripts, h ttp://mibs.snmplabs.com/asn1/@mib@
Borrow missing/failed MIBs from: h ttp://mibs.snmplabs.com/pysnmp/notexts/@mib@
Existing/compiled MIB locations: pysnmp.smi.mibs, pysnmp_mibs
Compiled MIBs destination directory: C:\Users\alpha_2.PL\PySNMP Configuration\mibs
MIBs excluded from code generation: RFC-1212, RFC-1215, RFC1065-SMI, RFC1155-SMI, RFC1158-MIB, RFC1213-MIB, SNMP-FRAMEWORK-MIB, SNMP-TARGET-MIB, SNMPv2-CONF, SNMPv2-SMI, SNMPv2-TC, SNMPv2-TM, TRANSPORT-ADDRESS-MIB
MIBs to compile: Program, mibs
Destination format: pysnmp
Parser grammar cache directory: not used
Also compile all relevant MIBs: yes
Rebuild MIBs regardless of age: no
Do not create/update MIBs: no
Byte-compile Python modules: yes (optimization level 0)
Ignore compilation errors: no
Generate OID->MIB index: no
Generate texts in MIBs: no
Try various filenames while searching for MIB module: yes
Created/updated MIBs:
Pre-compiled MIBs borrowed:
Up to date MIBs:
Missing source MIBs: Program, mibs
Ignored MIBs:
Failed MIBs:
将我的专有MIB文件转换为.py文件的正确方法是什么?如果您运行的是SNMP管理应用程序,您实际上不需要显式编译MIB——pysnmp将在后台通过调用
pysmi
编译器并缓存编译后的MIB以备将来使用。这里有一个能做到这一点的
您遇到的mibdump
问题似乎与MIB搜索路径有关。如果您的MIB文件位于currect工作目录中,则此命令应执行以下操作:
mibdump.py --mib-source . --mib-source http://mibs.snmplabs.com/asn1/@mib@ SL-XPDR
其想法是,您告诉mibdump首先签出您的cwd,然后尝试在线MIB存储库(对于MIB可能依赖的其他MIB文件)
在屏幕粘贴中,路径似乎被空白损坏。我不确定是因为剪切和粘贴,还是您需要在命令行中引用它们。我还尝试了以下脚本选项c:\>python mibdump.py--mib source=SL-XPDR,但没有成功。我尝试了您建议的脚本,得到了以下结果:c:\Program Files\Python35\Scripts>mibdump.py--mib source--mib source http://mibs.snmplabs.com/asn1/@mib@--mib module SL-XPDR错误:option--mib module not recognized顺便说一句,我喜欢你关于在我的代码中使用pysmi编译器的建议。你能举例说明这种用法吗?当你说“运行SNMP管理应用程序”是什么意思?开枪吧!没有--mib模块选项,只有mib name(更新了我的答案)@MosheS。添加了一个指向使用pysmigree的pysnmp示例的链接。最后我是否需要将所有.py文件(一次MIB)复制到pysnmp MIB目录?