Я думал, что 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
вариант) будет делать то, что вы хотите.
В качестве альтернативы вы можете НАПОЛНИТЬ IF-MIB::ifEntry
что дает вам больше, чем вы хотите.
snmpbulkget
(или, скорее, базовые методы GETBULK / GETNEXT) всегда возвращают следующий переменная в дереве.
Цитата из http://net-snmp.sourceforge.net/wiki/index.php/GETBULK ...
Команда GETNEXT (GetnextRequest) запрашивает список экземпляров у удаленного объекта, но ожидает возврата следующей переменной в дереве.