|
Packit |
667938 |
#!/usr/bin/perl
|
|
Packit |
667938 |
|
|
Packit |
667938 |
#
|
|
Packit |
667938 |
# Copyright (c) 1997 by Carlos Canau <canau@EUnet.pt>, EUnet Portugal.
|
|
Packit |
667938 |
# All Rights Reserved.
|
|
Packit |
667938 |
#
|
|
Packit |
667938 |
# See the file COPYRIGHT in the distribution for the exact terms.
|
|
Packit |
667938 |
#
|
|
Packit |
667938 |
|
|
Packit |
667938 |
$SNMPGet = '/usr/bin/snmpget';
|
|
Packit |
667938 |
$TableBase = '/store/lib/mrtg/GetSNMPLinesUP/ModemTable';
|
|
Packit |
667938 |
$Community = "public";
|
|
Packit |
667938 |
$progname = 'GetSNMPLinesUP.pl';
|
|
Packit |
667938 |
$Router = $ARGV[0];
|
|
Packit |
667938 |
$Table = $ARGV[1] || "$TableBase.$Router";
|
|
Packit |
667938 |
|
|
Packit |
667938 |
$MAGICLEN = 20;
|
|
Packit |
667938 |
|
|
Packit |
667938 |
$UPTIME = "system.sysUpTime.0";
|
|
Packit |
667938 |
$NAME = "system.sysName.0";
|
|
Packit |
667938 |
|
|
Packit |
667938 |
if (!$Router) {
|
|
Packit |
667938 |
die "$progname: $progname ROUTER [TableFile]\n";
|
|
Packit |
667938 |
}
|
|
Packit |
667938 |
|
|
Packit |
667938 |
$var = "$UPTIME $NAME "; $varlen = 2;
|
|
Packit |
667938 |
$buzy = 0;
|
|
Packit |
667938 |
|
|
Packit |
667938 |
if ( ! -r "$Table") {
|
|
Packit |
667938 |
$Table = "$TableBase.$Router";
|
|
Packit |
667938 |
}
|
|
Packit |
667938 |
|
|
Packit |
667938 |
open( TABLE, "$Table" );
|
|
Packit |
667938 |
while () {
|
|
Packit |
667938 |
chop;
|
|
Packit |
667938 |
$var = $var . $_ . " "; $varlen++;
|
|
Packit |
667938 |
if ($varlen >= $MAGICLEN) {
|
|
Packit |
667938 |
open( GET, "$SNMPGet -v 1 $Router $Community $var |" );
|
|
Packit |
667938 |
while ( <GET> ) {
|
|
Packit |
667938 |
chop;
|
|
Packit |
667938 |
### printf "---%s\n", $_;
|
|
Packit |
667938 |
if (/up\(1\)/) {
|
|
Packit |
667938 |
$buzy++;
|
|
Packit |
667938 |
};
|
|
Packit |
667938 |
### if (/$UPTIME/) {
|
|
Packit |
667938 |
if (/^system\.sysUpTime/) {
|
|
Packit |
667938 |
($dummy, $Uptime) = split(' = ', $_, 9999);
|
|
Packit |
667938 |
}
|
|
Packit |
667938 |
### if (/$NAME/) {
|
|
Packit |
667938 |
if (/^system\.sysName/) {
|
|
Packit |
667938 |
($dummy, $Name) = split(' = ', $_, 9999);
|
|
Packit |
667938 |
}
|
|
Packit |
667938 |
}
|
|
Packit |
667938 |
close ( GET );
|
|
Packit |
667938 |
$var = ""; $varlen = 0;
|
|
Packit |
667938 |
}
|
|
Packit |
667938 |
}
|
|
Packit |
667938 |
close( TABLE );
|
|
Packit |
667938 |
|
|
Packit |
667938 |
if ($varlen) {
|
|
Packit |
667938 |
open( GET, "$SNMPGet -v 1 $Router $Community $var |" );
|
|
Packit |
667938 |
while ( <GET> ) {
|
|
Packit |
667938 |
chop;
|
|
Packit |
667938 |
### printf "+++%s\n", $_;
|
|
Packit |
667938 |
if (/up\(1\)/) {
|
|
Packit |
667938 |
$buzy++;
|
|
Packit |
667938 |
};
|
|
Packit |
667938 |
### if (/$UPTIME/) {
|
|
Packit |
667938 |
if (/^system\.sysUpTime/) {
|
|
Packit |
667938 |
($dummy, $Uptime) = split(' = ', $_, 9999);
|
|
Packit |
667938 |
}
|
|
Packit |
667938 |
### if (/$NAME/) {
|
|
Packit |
667938 |
if (/^system\.sysName/) {
|
|
Packit |
667938 |
($dummy, $Name) = split(' = ', $_, 9999);
|
|
Packit |
667938 |
}
|
|
Packit |
667938 |
}
|
|
Packit |
667938 |
close ( GET );
|
|
Packit |
667938 |
}
|
|
Packit |
667938 |
|
|
Packit |
667938 |
printf "$buzy\n";
|
|
Packit |
667938 |
printf "0\n"; # Unused
|
|
Packit |
667938 |
printf "$Uptime\n";
|
|
Packit |
667938 |
printf "$Name\n";
|
|
Packit |
667938 |
|