Can';无法在Perl中获得扩展的SNMP输出

Can';无法在Perl中获得扩展的SNMP输出,perl,snmp,net-snmp,Perl,Snmp,Net Snmp,我已经编写了一个Perl脚本来放回一些SNMP值,效果很好。现在,我已经在远程服务器上编写了一个脚本,并使用中的extend函数将脚本中的值放入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 但是

我已经编写了一个Perl脚本来放回一些SNMP值,效果很好。现在,我已经在远程服务器上编写了一个脚本,并使用中的extend函数将脚本中的值放入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";
但是什么也没有归还,我也不知道为什么。。。没有错误,我错过了什么愚蠢的事情吗


希望有人能帮助我,因为这让我发疯:)

我想你用的是netsnmp snmpget。嗯,它对您隐藏了太多的细节,因为它在后台加载MIB文档,并将OID和SNMP值很好地转换为各种用户友好的格式


因此,下次请注意它执行的装饰,并在您自己的代码中模拟它以实现相同的效果。

使用wireshark检查SNMP get是否从您的脚本正确发送。同时检查回复,并将其与成功使用net snmp get时捕获的数据包进行比较。您还应该启用SNMP调试以查看是否存在一些问题$SNMP::verbose=1$SNMP::调试=1;嗨,谢谢你的想法,但是在我发布之后,我想也许我应该尝试一下OID,它很管用,所以有些东西翻译得不好。。。