Blame contrib/get-equi/get-equi.pl

Packit 667938
#!/usr/bin/perl
Packit 667938
#
Packit 667938
# byte counter for a Equinox SST card with analog modem pool
Packit 667938
# for use with mrtg2
Packit 667938
#
Packit 667938
# by Mike Gaertner <mg@forum.org.kh>
Packit 667938
# 20 Apr 2000
Packit 667938
#
Packit 667938
# Returns the total sum of the input and output character counter 
Packit 667938
# from an SST card for all ports you specify 
Packit 667938
#
Packit 667938
# NEEDS the Linux driver version 3-35c for SST based boards
Packit 667938
#
Packit 667938
# --- sample.cfg file ---
Packit 667938
#  #MaxBytes = (8 x 56kbit/s modems) / 8 = 56000 bytes/s total capacity
Packit 667938
#  #           adjust this to the number of modems you have
Packit 667938
#
Packit 667938
#  Target[modems]: `/usr/local/mlog3/bin/mrtg/get-equi.pl`
Packit 667938
#  MaxBytes[modems]: 56000
Packit 667938
#  Title[modems]: OFIX modem pool traffic (8 Modems)
Packit 667938
#  Options[modems]: growright
Packit 667938
#  XSize[modems]: 500
Packit 667938
#  YSize[modems]: 200
Packit 667938
#  WithPeak[modems]: my
Packit 667938
#  PageTop[modems]: 

Traffic Analysis modem pool (8 Modems)

Packit 667938
# -------
Packit 667938
#
Packit 667938
# Edit the @m array 
Packit 667938
# @m = Modems you want to monitor without ttyQ
Packit 667938
#
Packit 667938
# check the $sstty path
Packit 667938
#
Packit 667938
Packit 667938
use strict;
Packit 667938
Packit 667938
my(@m,$sstty,$port,$i,$o,$new_i,$new_o,$source);
Packit 667938
Packit 667938
# modems
Packit 667938
@m = ("1a5","1a6","1a7","1a8","1a9","1a10","1a11","1a12") ;
Packit 667938
Packit 667938
$sstty = "/usr/bin/sstty -s ";
Packit 667938
$source = "equinox modempool";
Packit 667938
Packit 667938
$new_i = 0;
Packit 667938
$new_o = 0;
Packit 667938
Packit 667938
foreach $port ( @m ) {
Packit 667938
Packit 667938
	open ( STAT, "$sstty $port |" ) ;
Packit 667938
	while( <STAT> ) {
Packit 667938
                if ( /input/ ) {
Packit 667938
			($i,$o) = (split(/ +/))[8,11] ;
Packit 667938
			$new_i += hex($i);
Packit 667938
			$new_o += hex($o);
Packit 667938
                }
Packit 667938
	}
Packit 667938
	close(STAT);
Packit 667938
}
Packit 667938
Packit 667938
print $new_i,"\n",$new_o,"\n",&uptime(),"\n$source\n"  ;
Packit 667938
Packit 667938
#find out when the board driver was last loaded
Packit 667938
sub uptime {
Packit 667938
Packit 667938
    my($start,$now,$diff,$s,$m,$h,$d,$hms);
Packit 667938
    $start = (stat("/etc/eqnx/logfile"))[10] ;
Packit 667938
    $now = time() ;
Packit 667938
    $diff = $now - $start ;
Packit 667938
Packit 667938
    $s = $diff % 60;
Packit 667938
    $diff = ($diff - $s) / 60;
Packit 667938
    $m = $diff % 60;
Packit 667938
    $diff = ($diff - $m) / 60;
Packit 667938
    $h = $diff % 24;
Packit 667938
    $diff = ($diff - $h) / 24;
Packit 667938
    $d = $diff ;
Packit 667938
    
Packit 667938
    $hms.= ($h < 10 ? " " : "") . $h;
Packit 667938
    $hms.= ($m < 10 ? ":0" : ":") . $m;
Packit 667938
    $hms.= ($s < 10 ? ":0" : ":") . $s;
Packit 667938
    return "$d days, $hms";
Packit 667938
}
Packit 667938