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