Blame contrib/GetSNMPLinesUP/GetSNMPLinesUP.pl

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