Net-Snmp

snmpbulkget 給出下一個 oid 的值,而不是給出參數中提到的 oid。為什麼?

  • October 13, 2016

我認為 snmpbulkget 的行為類似於 snmpget,只是它可以支持多個 oid 請求。但我看到奇怪的行為。它提供下一個 OID 資訊而不是詢問的內容:

snmpbulkget -Cr1 servername IF-MIB::ifSpeed.7.0 IF-MIB::ifInOctets.7 IF-MIB::ifInUcastPkts.7 IF-MIB::ifInNUcastPkts.7 IF-MIB::ifInNUcastPkts.7 IF-MIB::ifInDiscards.7 IF-MIB::ifInErrors.7 IF-MIB::ifOutOctets.7 IF-MIB::ifOutUcastPkts.7 IF-MIB::ifOutNUcastPkts.7 IF-MIB::ifOutDiscards.7 IF-MIB::ifOutErrors.7
IF-MIB::ifSpeed.8 = Gauge32: 10000000
IF-MIB::ifInOctets.8 = Counter32: 3674120514
IF-MIB::ifInUcastPkts.8 = Counter32: 2462391943
IF-MIB::ifInNUcastPkts.8 = Counter32: 19169575
IF-MIB::ifInNUcastPkts.8 = Counter32: 19169575
IF-MIB::ifInDiscards.8 = Counter32: 0
IF-MIB::ifInErrors.8 = Counter32: 775777
IF-MIB::ifOutOctets.8 = Counter32: 3824588280
IF-MIB::ifOutUcastPkts.8 = Counter32: 2866781089
IF-MIB::ifOutNUcastPkts.8 = Counter32: 0
IF-MIB::ifOutDiscards.8 = Counter32: 0
IF-MIB::ifOutErrors.8 = Counter32: 0

為什麼?

snmpget將發送一個包含多個 OID 的數據包(您可以使用該-d選項驗證這一點)。因此,更改要使用的命令snmpget(並刪除該-Cr1選項)將滿足您的需求。

或者,您可以 BULKGETIF-MIB::ifEntry給您比您想要的更多。

snmpbulkget(或者更確切地說是底層的 GETBULK/GETNEXT)方法總是返回樹中的下一個變數。

引用http://net-snmp.sourceforge.net/wiki/index.php/GETBULK

GETNEXT 命令 (GetnextRequest) 從遠端實體請求實例列表,但期望返回樹中的下一個變數。

引用自:https://serverfault.com/questions/808841