Net-Snmp
snmpbulkget 給出下一個 oid 的值,而不是給出參數中提到的 oid。為什麼?
我認為 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
選項)將滿足您的需求。或者,您可以 BULKGET
IF-MIB::ifEntry
給您比您想要的更多。
snmpbulkget
(或者更確切地說是底層的 GETBULK/GETNEXT)方法總是返回樹中的下一個變數。引用http://net-snmp.sourceforge.net/wiki/index.php/GETBULK …
GETNEXT 命令 (GetnextRequest) 從遠端實體請求實例列表,但期望返回樹中的下一個變數。