Модуль SNMPWalk не найден

Вы можете сделать это, используя следующие методы, как показано в POSIX или GNU sed

С редактором sed:

$ L=5 R=8
$ sed -e '
   s/./\n/'"$L"';s//\n/'"$R"';ta
   :a;s/\n\n/NN/;t
   s/\n./N\n/;ta
'./test

ABCDNNNNABCD

С Perl:

perl -lspe '
   my $c = $idxr - (pos()=$idxl-1);
   s/\G.{$c}/"N"x$c/e;
' -- -idxl=5 -idxr=8./test

ABCDNNNNABCD
0
16.05.2021, 15:57
1 ответ

Опция -mпринимает параметр :разделенный двоеточием -список имен модулей MIB , а не имен отдельных объектов MIB.

В результате -m NET-SNMP-EXTEND-MIB::nsExtendObjectsанализируется как три имени модуля MIB:

  • NET-SNMP-EXTEND-MIBкоторое является допустимым именем модуля MIB
  • <null>что явно игнорируется
  • nsExtendObjects, которое на самом деле является именем объекта MIB в модуле NET -SNMP -EXTEND -MIB.

Указание OID для начала обхода на самом деле необязательно для snmpwalk:. Если он не указан, по умолчанию будет SNMPv2-SMI::mib-2, и поэтому вы не получаете сообщение об ошибке о неправильном синтаксисе. Вместо этого команда пытается найти модуль MIB с именем nsExtendObjectsи, очевидно, не находит его.

Если по какой-то причине вы хотите продолжать использовать параметр -m, правильным синтаксисом будет:

snmpwalk -v2c -c public [ip] -m NET-SNMP-EXTEND-MIB NET-SNMP-EXTEND-MIB::nsExtendObjects

Другими словами, первый NET-SNMP-EXTEND-MIBявляется параметром для опции -m, а второй является частью OID, с которого вы хотите начать обход.

Но в этом случае вы, вероятно, можете вообще не использовать опцию -m:

snmpwalk -v2c -c public [ip] NET-SNMP-EXTEND-MIB::nsExtendObjects

Обе эти формы должны давать один и тот же результат.

Если download-mibsбыл успешно завершен, в вашей системе должен быть файл с именем /usr/share/snmp/mibs/NET-SNMP-EXTEND-MIB.txt.

$ sha256sum /usr/share/snmp/mibs/NET-SNMP-EXTEND-MIB.txt
ad05abc5ec39107a140d46e4e62e3fc0cf38eb26c1abe634fd7e9a7c7715e64e  /usr/share/snmp/mibs/NET-SNMP-EXTEND-MIB.txt
0
28.07.2021, 11:32

Теги

Похожие вопросы