PYSNMP 4.4.12-无法编译自定义MIB



在第一次尝试pysnmp时,我很难加载自定义MIB。我读到旧版本需要编译自定义mib,而新版本则将编译嵌入后端进程中。当我尝试任何一种方法时,脚本都会挂起。。。无限期地自定义MIB是CISCO-PRODUCTS.MIB,我已经下载了它,并以.my扩展名结束。

python3 mibdump.py  --mib-source=file://./ --destination-directory=/home/myuser/Desktop/Ansible/mibs --destination-format=pysnmp  CISCO-PRODUCTS-MIB
Source MIB repositories: file://./  Borrow missing/failed MIBs from:
http://mibs.snmplabs.com/pysnmp/notexts/@mib@  
Existing/compiled MIB locations: pysnmp.smi.mibs, pysnmp_mibs  
Compiled MIBs destination directory: /home/myuser/Desktop/Ansible/mibs  
MIBs excluded from code generation: INET-ADDRESS-MIB, PYSNMP-USM-MIB, 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: CISCO-PRODUCTS-MIB  
Destination format: pysnmp  
Parser grammar cache directory: not used  
Also compile all relevant MIBs: yes  
Rebuild MIBs regardless of age: no  
Dry run mode: no  
Create/update MIBs: yes  
Byte-compile Python modules: yes (optimization level no)  
Ignore compilation errors: no  
Generate OID->MIB index: no  
Generate texts in MIBs: no  
Keep original texts layout: no  
Try various file names while searching for MIB module: yes  
Traceback (most recent call last):   File "mibdump.py", line 350, in
<module>
processed = mibCompiler.compile(   File "/home/myuser/.local/lib/python3.8/site-packages/pysmi/compiler.py",
line 227, in compile
fileInfo, fileData = source.getData(mibname)   File "/home/myuser/.local/lib/python3.8/site-packages/pysmi/reader/localfile.py",
line 105, in getData
for path in self.getSubdirs(self._path, self._recursive, self._ignoreErrors):   File
"/home/myuser/.local/lib/python3.8/site-packages/pysmi/reader/localfile.py",
line 64, in getSubdirs
dirs.extend(self.getSubdirs(d, recursive))   File "/home/myuser/.local/lib/python3.8/site-packages/pysmi/reader/localfile.py",
line 64, in getSubdirs
dirs.extend(self.getSubdirs(d, recursive))   File "/home/myuser/.local/lib/python3.8/site-packages/pysmi/reader/localfile.py",
line 64, in getSubdirs
dirs.extend(self.getSubdirs(d, recursive))   [Previous line repeated 44 more times]   File
"/home/myuser/.local/lib/python3.8/site-packages/pysmi/reader/localfile.py",
line 63, in getSubdirs
if os.path.isdir(d):   File "/usr/lib/python3.8/genericpath.py", line 42, in isdir
st = os.stat(s) KeyboardInterrupt

同一目录中的文件为:

  • CISCO-PRODUCTS-MIB.my
  • 思科SMI.my
  • mibdump.py
  • SNMPv2-CONF.my
  • SNMPv2-SMI.my
  • SNMPv2-TC.my

有人知道错误在哪里吗?

添加--mib-searcher参数可解决问题`

mibdump.py --disable-fuzzy-source --mib-source /home/user/.snmp/mibs --mib-searcher=/home/user/.snmp/mibs --destination-format pysnmp [MIB_ MODULE]

其中[MIB_MODULE].MIB文件出现在/home/user/.snmp/mibs目录中

参考:https://snmplabs.thola.io/pysmi/mibdump.html

最新更新