1

SNMP 値を元に戻す Perl スクリプトを作成しましたが、これは正常に機能します。リモート サーバーにスクリプトを記述し、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";

しかし、何も返されず、理由がわかりません...エラーも何もありません。愚かなことを見逃しましたか?

これが私を狂わせているので、誰かが助けてくれることを願っています:)

4

1 に答える 1

2

netsnmpsnmpgetを使用したと思います。それは、MIBドキュメントをバックグラウンドでロードし、OIDとSNMP値をあらゆる種類のユーザーフレンドリーな形式にうまく変換するため、あまりにも多くの詳細を隠します。

したがって、次回は、それが実行する装飾に注意を払い、同じ効果を達成するために独自のコードでそれをシミュレートします。

于 2010-12-19T02:31:31.600 に答える