Не удается получить расширенный вывод SNMP в Perl - PullRequest
1 голос
/ 19 декабря 2010

Я написал Perl-скрипт для возврата некоторых значений SNMP, который отлично работает. Теперь я написал скрипт на удаленном сервере и использовал функцию расширения в SNMP , чтобы поместить значение из скрипта в SNMP.

Если я бегу:

snmpget -v2c -c public 10.0.0.10 'NET-SNMP-EXTEND-MIB::nsExtendOutput1Line."cc_power"'

Я получаю результат:

NET-SNMP-EXTEND-MIB::nsExtendOutput1Line."cc_power" = STRING: 544

Но когда я пытаюсь использовать свой сценарий для получения информации, он не получает ее. Вот сценарий:

#!/usr/bin/perl     

use strict;
use SNMP;
use RRDs;

my $rrd_db = "/storage/db/rrd/cc_power.rrd";

my $sess;
my $val;
my $error;

$sess = new SNMP::Session(DestHost => "10.0.0.10", Community => "public", Version => 2);
my $power = $sess->get('NET-SNMP-EXTEND-MIB::nsExtendOutput1Line.\"cc_power\"');

$error=RRDs::error;
die "ERROR while updating RRD: $error\n" if $error;

my $date=time;
print "Data Script has been run - Output: ${date}:${power}\n";

но ничего не возвращается, и я понятия не имею, почему ... нет ошибок или чего-то еще, я что-то упустил глупый?

Надеюсь, кто-то может помочь, так как это сводит меня с ума:)

1 Ответ

2 голосов
/ 19 декабря 2010

Я предполагаю, что вы использовали netsnmp snmpget.Что ж, он скрывает от вас слишком много деталей, поскольку загружает документы MIB в фоновом режиме и хорошо переводит значения OID и SNMP во все виды удобных для пользователя форматов.

Поэтому в следующий раз обратите внимание на то, какое украшение он выполняет, и смоделируйте это в своем собственном коде для достижения тех же эффектов.

...