perl snmp应用
2010-08-11
perl 的snmp应用,以下代码是获取服务器的运行时间。 和服务器的网卡流量
#! /usr/local/bin/perl
use strict;
use warnings;
use Net::SNMP;
my $OID_sysUpTime = '1.3.6.1.2.1.1.3.0';
my $OID_sysoutput = '1.3.6.1.2.1.2.2.1.10.2';
my $OID_sysinput = '1.3.6.1.2.1.2.2.1.16.2';
my ($session, $error) = Net::SNMP->session(
-hostname => shift || '192.168.1.195',
-community => shift || 'public',
-version => 'snmpv2c',
);
if (!defined $session) {
printf "ERROR: %s.\n", $error;
exit 1;
}
my $result = $session->get_request(-varbindlist => [ $OID_sysUpTime,
$OID_sysoutput,$OID_sysinput],);
if (!defined $result) {
printf "ERROR: %s.\n", $session->error();
$session->close();
exit 1;
}
printf "The sysUpTime for host '%s' is %s.\n",
$session->hostname(), $result->{$OID_sysUpTime};
print "$result->{$OID_sysoutput}\t$result->{$OID_sysinput}\n";
$session->close();
exit 0;