1
いくつかのSNMP値を戻すためにPerlスクリプトを作成しましたが正常に動作します。私は今リモートサーバー上にスクリプトを書いて、SNMPにextend関数を使用してスクリプトからの値をSNMPに入れました。Perlで拡張SNMP出力を取得できません
私が実行した場合:
NET-SNMP-EXTEND-MIB::nsExtendOutput1Line."cc_power" = STRING: 544
しかし、私はそれを得ることはありません戻って情報を取得するために私のスクリプトを使用しよう:
snmpget -v2c -c public 10.0.0.10 'NET-SNMP-EXTEND-MIB::nsExtendOutput1Line."cc_power"'
は私が結果を得ます。ここではスクリプトです:
#!/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";
が、何も返さず、私は愚かな何かを見逃している私は、何のアイデアなぜ...エラーなしか何かを持っていませんか?
これは私があなたがnetsnmp snmpgetコマンドを使用することを前提と:)
wiresharkを使用して、SNMP getがスクリプトから正しく送信されているかどうかを確認します。応答も確認し、net-snmp getが正常に使用されたときにキャプチャされたパケットと比較してください。 また、SNMPデバッグを有効にして、問題があるかどうかを確認する必要があります。 $ SNMP :: verbose = 1; $ SNMP :: debugging = 1; –
こんにちは、アイデアをありがとう、しかし私が投稿した後、私は多分私はOIDで試してみるべきだと思った、それは働いたので、うまく翻訳していないものがある... – ard