use*_*455 1 mysql bash snmp mib net-snmp
我必须使用我一直在研究的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
Run Code Online (Sandbox Code Playgroud)
我的实际回应:
.1.3.6.1.2.1.1.1 = Counter32: 1974
.1.3.6.1.2.1.1.2 = Counter32: 633940
Run Code Online (Sandbox Code Playgroud)
期望的回应:
1974
633940314
Run Code Online (Sandbox Code Playgroud)
(仅限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
Run Code Online (Sandbox Code Playgroud)
回报
.1.3.6.1.2.1.1.1 Counter32: 1974
.1.3.6.1.2.1.1.2 Counter 32: 633940314
Run Code Online (Sandbox Code Playgroud)
所以我知道我正在正确地表达我的要求.
我正在取值并将它们写入MYSQL dB,我在我的故事模式中设置数据类型,请求是一致的所以我知道OID的定义,所以我不需要我得到的所有信息,只是OID本身的值,所以我可以把它写到我的dB而不操纵响应.我可能可以操纵响应将信息拉到":"的右边并写入OID的值.
我是相对较新的SNMP(http://www.net-snmp.org/),但我不明白为什么这不是一个更常见的问题,因为我一直在寻找答案,这篇文章是我的最后一篇追索权...
您可以使用-O
参数调整输出:
snmpgetnext -Oqv -v 2c -c public 192.168.0.77 .1
2
Run Code Online (Sandbox Code Playgroud)
见--help
:
q: quick print for easier parsing
v: print values only (not OID = value)
Run Code Online (Sandbox Code Playgroud)