我已经使用snmp支持编译了php,当我在php上执行一个strace时,我得到了很多以下内容,表明它正在尝试解析每个MIB文件。是否可以在启用snmp3_get / snmp3_set方法的情况下编译php,但是它不会输出所有这些?
$> strace php -v
...
open("/usr/local/share/snmp/mibs/SNMPv2-TM.txt", O_RDONLY|O_LARGEFILE) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=5775, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7645000
read(3, "SNMPv2-TM DEFINITIONS ::= BEGIN\n"..., 4096) = 4096
read(3, "'n' as an unsigned integer\n "..., 4096) = 1679
read(3, "", 4096) = 0
close(3) = 0
munmap(0xb7645000, 4096) = 0
open("/usr/local/share/snmp/mibs/NET-SNMP-VACM-MIB.txt", O_RDONLY|O_LARGEFILE) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=5039, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7645000
read(3, "NET-SNMP-VACM-MIB DEFINITIONS ::"..., 4096) = 4096
read(3, "across\n all nsVa"..., 4096) = 943
read(3, "", 4096) = 0
close(3) = 0
...
我将通过直接调用完整的OID来进行所有SNMP调用,因此无需解析这些文件
答案 0 :(得分:2)
通常,net-snmp应用程序将从硬编码的目录列表或MIBDIRS环境变量中包含的目录列表中读取MIB文件。
一种非常简单,快速的黑客,确保不解析MIB文件的方法是在调用函数初始化应用程序中的net-snmp之前,覆盖MIBDIRS环境变量以指向不存在的目录