在第一次尝试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