2010-12-18 21 views
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コマンドを使用することを前提と:)

+2

wiresharkを使用して、SNMP getがスクリプトから正しく送信されているかどうかを確認します。応答も確認し、net-snmp getが正常に使用されたときにキャプチャされたパケットと比較してください。 また、SNMPデバッグを有効にして、問題があるかどうかを確認する必要があります。 $ SNMP :: verbose = 1; $ SNMP :: debugging = 1; –

+0

こんにちは、アイデアをありがとう、しかし私が投稿した後、私は多分私はOIDで試してみるべきだと思った、それは働いたので、うまく翻訳していないものがある... – ard

答えて

2

ナットを駆動していると、誰かが助けることができると思います。それは、MIB文書をバックグラウンドで読み込み、OIDやSNMP値をあらゆる種類のユーザーフレンドリな形式に変換するので、あなたの詳細をあまりにも隠してしまいます。

次に、どのような装飾が実行されているかに注目して、同じ効果を達成するために自分のコードでそれをシミュレートします。

関連する問題