Mysql SNMP输出选项-如何仅获取OID响应值?

Mysql SNMP输出选项-如何仅获取OID响应值?,mysql,bash,snmp,net-snmp,mib,Mysql,Bash,Snmp,Net Snmp,Mib,我必须使用我一直在使用的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 期望的响应: .1.3.6.1.2.1.1.

我必须使用我一直在使用的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
期望的响应:

 .1.3.6.1.2.1.1.1 = Counter32: 1974 
 .1.3.6.1.2.1.1.2 = Counter32: 633940
1974
633940314
(仅限oid值)

我使用以下站点的资源查看并测试了几个选项:

-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 
返回

.1.3.6.1.2.1.1.1 Counter32: 1974
.1.3.6.1.2.1.1.2 Counter 32: 633940314
所以我知道我的请求措辞恰当

我获取这些值并将它们写入MYSQL数据库,我在我的模式中设置数据类型,请求是一致的,因此我知道OID的定义,所以我不需要返回的所有信息,只需要OID本身的值,因此我可以将其写入我的数据库,而无需操纵响应。我可能可以操纵将信息拉到“:”右侧的响应,并写入OID的值


我对SNMP()比较陌生,但我不明白为什么这不是一个更常见的问题,因为我一直在到处寻找答案,而这篇文章是我最后的办法……

你可以用一个简单的Awk或
sed
脚本,甚至是
grep
(只要你有
grep-p


您可以使用
-O
参数调整输出:

snmpgetnext -Oqv -v 2c -c public 192.168.0.77 .1
2
请参阅
--帮助

q:  quick print for easier parsing
v:  print values only (not OID = value)

您是否从示例中的“实际响应”中删除了几个数字?它与讨论的其他部分不匹配。不确定这是一个编程问题。不过,其中一个答案是编程答案。=)对我来说,这就是Stackoverflow的意义所在;对特定问题的简洁回答<代码>-Oqv
是金色的。
q:  quick print for easier parsing
v:  print values only (not OID = value)