Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: Общие вопросы > Команда snmpset в perl


Автор: Guran 23.10.2011, 05:08
Добрый день. Появилась такая задача: по snmp запустить тест Cable Tester'а, он проходит и после этого можно считывать данные.
В консоли это делается командами

snmpset -v2c -c private 172.16.34.3 1.3.6.1.4.1.171.12.58.1.1.1.12.21 i 1
snmpget -v2c -c private 172.16.34.3 1.3.6.1.4.1.171.12.58.1.1.1.8.21

Если первой командой тест не запустить будут приходить заведомо ложные ответы (типа длины кабеля -1)

Я делаю это командами 
Код

push my @list, ('1.3.6.1.4.1.171.12.58.1.1.1.12', ' i ', '1');

$snmp->set_request( -varbindlist => [@list]);

my $res = $snmp->get_request("1.3.6.1.4.1.171.12.58.1.1.1.3.".$port);

Но если get_request отрабатывает, то set_request, судя по возвращающимся данным, не просыпается. Может быть я использую не ту команду?

Автор: ginnie 23.10.2011, 09:29
Guran, попробуйте правильно указать тип данных в запросе:

Код

$snmp->set_request( -varbindlist => ['1.3.6.1.4.1.171.12.58.1.1.1.12', INTEGER, 1]);

Автор: Guran 24.10.2011, 01:17
Не помогло

Добавлено через 9 минут и 29 секунд
Заработало после помещения oid'a и придаваемого значения в двойные кавычки


push my @list, ("1.3.6.1.4.1.171.12.58.1.1.1.12.".$port,INTEGER,"1");

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)