Retour (si a marche) de IOG.

C'est nul le Perl :) Donc au lieu de passer par la lib snmp qui fait pas de
TCP, a passe par snmpget...
N.

darcs-hash:20030222122957-a279a-46df5cd2a49952e5a8e846eb968ce2fef7ade718.gz
This commit is contained in:
stransky 2003-02-22 13:29:57 +01:00
parent d41901ec39
commit f8a54ea342

View file

@ -84,7 +84,7 @@ open(CONFIG,$cfgfile) || die("Cannot open $cfgfile!");
my($name,$host,$community,$inoid,$outoid,$path) = split(/:/, $_);
$path =~ s/\n//;
$datafile = "$name".".dat";
my @results = snmpget($host,$community,$inoid,$outoid);
my @results = snmpget2($host,$community,$inoid,$outoid);
next if ($results[0] eq "error");
$inoctets = $results[0];
$outoctets = $results[1];
@ -161,11 +161,53 @@ sub snmpgetup {
}
#####################################################################################
# Section personnalisée pour faire du SNMP en TCP.
# NS 22/02/03
#####################################################################################
sub snmpget2 {
my($host, $community, $inoid, $outoid) = @_;
open IN, "snmpget -T TCP $host $community interfaces.ifTable.ifEntry.$inoid |";
my $inresult = <IN>;
chomp($inresult);
close(IN);
open OUT, "snmpget -T TCP $host $community interfaces.ifTable.ifEntry.$outoid |";
my $outresult = <OUT>;
chomp($outresult);
close(OUT);
my @intable = split(/ /,$inresult );
my @outtable = split(/ /,$outresult );
my @results = ($intable[-1],$outtable[-1]);
return @results;
}
sub snmpgetup2 {
my($host, $community, $upoid) = @_;
open UP, "snmpget -T TCP $host $community $upoid |";
my $uptimeresult = <UP>;
chomp($uptimeresult);
close(UP);
$uptimeresult =~ s/^.*\) //;
$uptimeresult =~ s/...$//;
return $uptimeresult;
}
####################################################################################
sub chkuptime {
$_ =~ s/\[|\]//g;
my($uphost,$upip,$upcommunity,$upoid,$upfile) = split (/:/, $_);
my $upresult = snmpgetup($upip,$upcommunity,$upoid);
my $upresult = snmpgetup2($upip,$upcommunity,$upoid);
tie(%inf, 'SDBM_File', ($upfile."$main::SL"."uptimes"), O_RDWR|O_CREAT, 0640)
or print "WARNING: Error opening uptime database file!\n";