#!/usr/local/bin/perl # # MRTG script for Bay 5399 : Written by John Kougoulos kugjon@panteion.gr # # $racaddr = $ARGV[0]; $raccommunity = $ARGV[1]; $miblocation = "/export/home/kugjon/ucdsnmp/ucd-snmp-3.5.3/MIBS" ; $ucdsnmp = "/export/home/kugjon/ucdsnmp/ucd-snmp-3.5.3/apps" ; $currtime = time(); $pretime = $currtime - 300; $id = 0; system("$ucdsnmp/snmpwalk $racaddr $raccommunity .1.3.6.1.4.1.15.2.16.2.4.1.12 > ras.callhist.setuptime "); system("$ucdsnmp/snmpwalk $racaddr $raccommunity .1.3.6.1.4.1.15.2.16.2.4.1.13 > ras.callhist.duration "); system("$ucdsnmp/snmpwalk $racaddr $raccommunity .1.3.6.1.4.1.15.2.16.1.2.1.9 > ras.acctcall.setuptime"); system("$ucdsnmp/snmpwalk $racaddr $raccommunity .1.3.6.1.4.1.15.2.16.1.2.1.10 > ras.acctcall.duration"); if(open(CALLSFILE, "ras.callhist.setuptime")) { while () { chop; @fields = split(/ \= /,$_); $_ = $fields[0]; $fields[0] =~ s/.*\.(\d+)$/\1/; $callid{$id}[0] = $fields[0]; $callid{$id}[1] = $fields[1]; # print $id."\t".$callid{$id}[0]."\t".$callid{$id}[1]."\n"; $id++; } } $lastid = $id; $id = 0; if(open(CALLSFILE, "ras.callhist.duration")) { while () { chop; @fields = split(/ \= /,$_); $_ = $fields[0]; $fields[0] =~ s/.*\.(\d+)$/\1/; if ($callid{$id}[0] == $fields[0]) { $callid{$id}[2] = $fields[1]; } $id++; } } $id = $lastid; if(open(CALLSFILE, "ras.acctcall.setuptime")) { while () { chop; @fields = split(/ \= /,$_); $_ = $fields[0]; $fields[0] =~ s/.*\.(\d+)$/A\1/; $callid{$id}[0] = $fields[0]; $callid{$id}[1] = $fields[1]; $id++ # print "Call: ".$fields[0]." ".$callid{$fields[0]}[0]." Duration: ".$callid{$fields[0]}[1]."\n"; } } $id = $lastid; if(open(CALLSFILE, "ras.acctcall.duration")) { while () { chop; @fields = split(/ \= /,$_); $_ = $fields[0]; $fields[0] =~ s/.*\.(\d+)$/A\1/; if ($callid{$id}[0] == $fields[0]) { $callid{$id}[2] = $fields[1]; } $id++ } } $endid = $id; $sum = 0; for( $i=0;$i<$id;$i++ ) { $setup = $callid{$i}[1]; $duration = $callid{$i}[2]; $endtime = $setup + $duration; if ( $setup > $pretime ) { $sum += $duration; } else { if ( $endtime > $pretime ) { $sum += $endtime - $pretime; } } $avecalls = int($sum/60); # print $callid{$i}[0]."*".$callid{$i}[1]."*".$callid{$i}[2]."*".$sum."\n"; } #print "Pretime:".$pretime."\n" print $avecalls."\n"; print $avecalls."\n";