|
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 |
|