SNMP 输出选项 - 如何只获取 OID 响应值?
SNMP OUTPUT OPTIONS - How do I get the OID response value only?
我必须使用我一直在处理的 BASH 脚本从一些支持 SNMP 的网络打印机收集一些 OID。
我的要求:
snmpget -v2c -c public 192.168.0.77
.1.3.6.1.2.1.1.1
.1.3.6.1.2.1.1.2
我的实际回复:
.1.3.6.1.2.1.1.1 = Counter32: 1974
.1.3.6.1.2.1.1.2 = Counter32: 633940
期望的响应:
1974
633940314
(仅 oid 值)
我使用以下站点的资源查看并测试了几个选项:
http://www.netsnmp.org/docs/man/snmpcmd.html#lbAF
-Oq
删除 '=' 所以 运行
snmpget -v2c -c public -Oq 10.15.105.133
.1.3.6.1.2.1.1.1
.1.3.6.1.2.1.1.2
returns
.1.3.6.1.2.1.1.1 Counter32: 1974
.1.3.6.1.2.1.1.2 Counter 32: 633940314
所以我知道我的请求措辞正确。
我正在获取值并将它们写入 MYSQL dB,我在我的故事模式中设置了数据类型,请求是一致的所以我知道 OID 的定义,所以我不需要我得到的所有信息,只是 OID 本身的值,所以我可以将它写入我的 dB 而无需操纵响应。我可能可以操纵将信息拉到“:”右侧并写入 OID 值的响应。
我对 SNMP 比较陌生 (http://www.net-snmp.org/),但我不明白为什么这不是一个更常见的问题,因为我一直在到处寻找答案,而这个 post我最后的办法...
您可以使用简单的 Awk 或 sed
脚本对输出进行后处理,甚至可以 grep
(前提是您有 grep -P
)。
snmpget -v2c -c public 192.168.0.77 <<'____HERE' | awk '{ print }'
.1.3.6.1.2.1.1.1
.1.3.6.1.2.1.1.2
____HERE
或
.... | sed 's/.*: //'
或
.... | grep -oP ':\K[0-9]+'
您可以使用 -O
参数调整输出:
snmpgetnext -Oqv -v 2c -c public 192.168.0.77 .1
2
参见 --help
:
q: quick print for easier parsing
v: print values only (not OID = value)
我必须使用我一直在处理的 BASH 脚本从一些支持 SNMP 的网络打印机收集一些 OID。
我的要求:
snmpget -v2c -c public 192.168.0.77
.1.3.6.1.2.1.1.1
.1.3.6.1.2.1.1.2
我的实际回复:
.1.3.6.1.2.1.1.1 = Counter32: 1974
.1.3.6.1.2.1.1.2 = Counter32: 633940
期望的响应:
1974
633940314
(仅 oid 值)
我使用以下站点的资源查看并测试了几个选项:
http://www.netsnmp.org/docs/man/snmpcmd.html#lbAF
-Oq
删除 '=' 所以 运行
snmpget -v2c -c public -Oq 10.15.105.133
.1.3.6.1.2.1.1.1
.1.3.6.1.2.1.1.2
returns
.1.3.6.1.2.1.1.1 Counter32: 1974
.1.3.6.1.2.1.1.2 Counter 32: 633940314
所以我知道我的请求措辞正确。
我正在获取值并将它们写入 MYSQL dB,我在我的故事模式中设置了数据类型,请求是一致的所以我知道 OID 的定义,所以我不需要我得到的所有信息,只是 OID 本身的值,所以我可以将它写入我的 dB 而无需操纵响应。我可能可以操纵将信息拉到“:”右侧并写入 OID 值的响应。
我对 SNMP 比较陌生 (http://www.net-snmp.org/),但我不明白为什么这不是一个更常见的问题,因为我一直在到处寻找答案,而这个 post我最后的办法...
您可以使用简单的 Awk 或 sed
脚本对输出进行后处理,甚至可以 grep
(前提是您有 grep -P
)。
snmpget -v2c -c public 192.168.0.77 <<'____HERE' | awk '{ print }'
.1.3.6.1.2.1.1.1
.1.3.6.1.2.1.1.2
____HERE
或
.... | sed 's/.*: //'
或
.... | grep -oP ':\K[0-9]+'
您可以使用 -O
参数调整输出:
snmpgetnext -Oqv -v 2c -c public 192.168.0.77 .1
2
参见 --help
:
q: quick print for easier parsing
v: print values only (not OID = value)