我正在尝试编写一个脚本来在我的设备上执行 GET/SET 命令。当我尝试对 sysDescr(它是标准 MIB SNMPv2 的一部分)执行 GET 操作时,我设法得到了响应。
我尝试以几种不同的方式使用 mibdump.py 脚本,以便转换我的专有 MIB 文件,以便我以后可以使用它们:

  • 激活带有 .mib 扩展名和不带 .mib 扩展名的特定 MIB 文件(见结果)上的 mibdump.py
     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:
    
  • 我用特定的 MIB 文件位置再次尝试,但没有成功
  • 我什至试图编译整个 MIB 文件夹但没有成功
    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 以备将来使用,在幕后为您执行此操作。 an example script 就是这样做的。

    您的 mibdump 问题似乎与 MIB 搜索路径有关。鉴于您在当前工作目录中有您的 MIB 文件,此命令应该执行以下操作:

    mibdump.py  --mib-source . --mib-source http://mibs.snmplabs.com/asn1/@mib@ SL-XPDR
    

    这个想法是您告诉 mibdump 首先检查您的 cwd,然后尝试在线 MIB 存储库(对于您的 MIB 可能依赖的其他 MIB 文件)。

    在您的屏幕粘贴中,路径看起来像是被空格损坏了。我不确定是因为剪切和粘贴还是您需要在命令行中引用它们。

    关于python - 如何将我的私有(private) MIB 文件转换为 .py 格式,以便我可以在我的设备上执行 GET/SET 操作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42339929/

    10-12 23:29