|
Packit |
667938 |
#!/usr/local/gnu/bin/perl5
|
|
Packit |
667938 |
# -*- mode: Perl -*-
|
|
Packit |
667938 |
##################################################################
|
|
Packit |
667938 |
# Multi Router Traffic Grapher: Index Generator
|
|
Packit |
667938 |
##################################################################
|
|
Packit |
667938 |
#
|
|
Packit |
667938 |
# This reads a mrtg.cfg file form std input or cmdline argument
|
|
Packit |
667938 |
# and it takes a regexp on the cmdline to specify which
|
|
Packit |
667938 |
# targets to look at.
|
|
Packit |
667938 |
#
|
|
Packit |
667938 |
# from this info it produces a router index on std out.
|
|
Packit |
667938 |
#
|
|
Packit |
667938 |
##################################################################
|
|
Packit |
667938 |
# Created by Tobias Oetiker <oetiker@ee.ethz.ch>
|
|
Packit |
667938 |
# Modifications by Laurie Gellatly <gellatly@one.net.au>
|
|
Packit |
667938 |
# Distributed under the GNU copyleft
|
|
Packit |
667938 |
#
|
|
Packit |
667938 |
# $Id: index,v 1.1.1.1 2002/02/26 10:16:36 oetiker Exp $
|
|
Packit |
667938 |
##################################################################
|
|
Packit |
667938 |
|
|
Packit |
667938 |
|
|
Packit |
667938 |
$regexp = pop @ARGV;
|
|
Packit |
667938 |
$Title = pop @ARGV;
|
|
Packit |
667938 |
if (defined($Title) && -f $Title) {
|
|
Packit |
667938 |
push(@ARGV, $Title);
|
|
Packit |
667938 |
$Title = "$Title Overview ($regexp)";
|
|
Packit |
667938 |
}
|
|
Packit |
667938 |
if (! -f $ARGV[0]) {
|
|
Packit |
667938 |
print "
|
|
Packit |
667938 |
|
|
Packit |
667938 |
USAGE: index <mrtg.cfg> <title> <regular expression>
|
|
Packit |
667938 |
|
|
Packit |
667938 |
This tool will read the contents of the mrtg.cfg file and will
|
|
Packit |
667938 |
return the HTML code of a webpage contanig the 'daily' graphs
|
|
Packit |
667938 |
of all the routers whose titles match the regular expression.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
NOTE: you have to adjust this tool to your needs as the HTML
|
|
Packit |
667938 |
contains our logo and our name ...
|
|
Packit |
667938 |
|
|
Packit |
667938 |
";
|
|
Packit |
667938 |
|
|
Packit |
667938 |
exit ;
|
|
Packit |
667938 |
|
|
Packit |
667938 |
}
|
|
Packit |
667938 |
|
|
Packit |
667938 |
#slurp the cfg file
|
|
Packit |
667938 |
while(<>) {
|
|
Packit |
667938 |
s/\t/ /g; #replace tabs by spac
|
|
Packit |
667938 |
next if /^\s+$/; #ignore white space
|
|
Packit |
667938 |
next if /^\s*\#/; #ignore comments
|
|
Packit |
667938 |
if (/$regexp/i && ! /\[\^\]/ && ! /\[\$\]/ && /^title\[([^\]]+)\]:\s*(.*\S)/i) {
|
|
Packit |
667938 |
$router=lc($1);
|
|
Packit |
667938 |
$arg=$2;
|
|
Packit |
667938 |
$titles{$router} = $arg;
|
|
Packit |
667938 |
next;
|
|
Packit |
667938 |
}
|
|
Packit |
667938 |
if (/^directory\[([^\]]+)\]:\s*(.*\S)/i) {
|
|
Packit |
667938 |
$arg = $2;
|
|
Packit |
667938 |
$tmp = lc($1);
|
|
Packit |
667938 |
$dirs{$tmp} = "$arg/";
|
|
Packit |
667938 |
}
|
|
Packit |
667938 |
if ($router && /^pagetop\[([^\]]+)\]:\s*(.*\S)/i) {
|
|
Packit |
667938 |
next;
|
|
Packit |
667938 |
}
|
|
Packit |
667938 |
if ($router && /^\s+(.*?)<\/H1>/) {
|
|
Packit |
667938 |
$titles{$router} .= " $1";
|
|
Packit |
667938 |
}
|
|
Packit |
667938 |
$router = '';
|
|
Packit |
667938 |
}
|
|
Packit |
667938 |
|
|
Packit |
667938 |
$Today=datestr(time);
|
|
Packit |
667938 |
print <
|
|
Packit |
667938 |
<HTML>
|
|
Packit |
667938 |
<HEAD>
|
|
Packit |
667938 |
<TITLE>$Title</TITLE>
|
|
Packit |
667938 |
<META HTTP-EQUIV="Refresh" CONTENT=300 >
|
|
Packit |
667938 |
</HEAD>
|
|
Packit |
667938 |
<BODY bgcolor=#ffffff>
|
|
Packit |
667938 |
|
|
Packit |
667938 |
$Title
|
|
Packit |
667938 |
|
|
Packit |
667938 |
These statistics were last updated $Today
|
|
Packit |
667938 |
|
|
Packit |
667938 |
ECHO
|
|
Packit |
667938 |
|
|
Packit |
667938 |
foreach $router (sort {$titles{$a} cmp $titles{$b}} keys %titles) {
|
|
Packit |
667938 |
$dirs{$router} = "" if (!defined($dirs{$router}));
|
|
Packit |
667938 |
$rdir = $dirs{$router};
|
|
Packit |
667938 |
print <
|
|
Packit |
667938 |
$titles{$router}
|
|
Packit |
667938 |
<SMALL></SMALL>
|
|
Packit |
667938 |
|
|
Packit |
667938 |
|
|
Packit |
667938 |
ECHO
|
|
Packit |
667938 |
}
|
|
Packit |
667938 |
|
|
Packit |
667938 |
'$Revision: 1.1.1.1 $ ' =~ /Revision: (\S*)/;
|
|
Packit |
667938 |
$rev=$1;
|
|
Packit |
667938 |
'$Date: 2002/02/26 10:16:36 $ ' =~ /Date: (\S*)/;
|
|
Packit |
667938 |
$date=$1;
|
|
Packit |
667938 |
|
|
Packit |
667938 |
print <
|
|
Packit |
667938 |
|
|
Packit |
667938 |
|
|
Packit |
667938 |
|
|
Packit |
667938 |
HREF="http://www.ee.ethz.ch/~oetiker/webtools/mrtg/mrtg.html">
|
|
Packit |
667938 |
BORDER=0 SRC="../mrtg-l.gif">
|
|
Packit |
667938 |
|
|
Packit |
667938 |
HREF="http://www.ee.ethz.ch/~oetiker/webtools/mrtg/mrtg.html">
|
|
Packit |
667938 |
BORDER=0 SRC="../mrtg-m.gif">
|
|
Packit |
667938 |
|
|
Packit |
667938 |
http://www.ee.ethz.ch/~oetiker/webtools/mrtg/mrtg.html">
|
|
Packit |
667938 |
BORDER=0 SRC="../mrtg-r.gif">
|
|
Packit |
667938 |
|
|
Packit |
667938 |
|
|
Packit |
667938 |
|
|
Packit |
667938 |
<SPACER TYPE=VERTICAL SIZE=4>
|
|
Packit |
667938 |
|
|
Packit |
667938 |
|
|
Packit |
667938 |
<FONT FACE="Arial,Helvetica" SIZE=2>
|
|
Packit |
667938 |
$rev-$date</FONT>
|
|
Packit |
667938 |
<FONT FACE="Arial,Helvetica" SIZE=2>
|
|
Packit |
667938 |
Tobias Oetiker
|
|
Packit |
667938 |
<oetiker\@ee.ethz.ch>
|
|
Packit |
667938 |
and Dave Rand <dlr\@bungi.com>
|
|
Packit |
667938 |
Back to Main Router List</FONT>
|
|
Packit |
667938 |
|
|
Packit |
667938 |
|
|
Packit |
667938 |
|
|
Packit |
667938 |
|
|
Packit |
667938 |
</BODY></HTML>
|
|
Packit |
667938 |
ECHO
|
|
Packit |
667938 |
|
|
Packit |
667938 |
sub datestr {
|
|
Packit |
667938 |
my ($time) = shift(@_) || return 0;
|
|
Packit |
667938 |
my ($wday) = ('Sunday','Monday','Tuesday','Wednesday',
|
|
Packit |
667938 |
'Thursday','Friday','Saturday')[(localtime($time))[6]];
|
|
Packit |
667938 |
my ($month) = ('January','February' ,'March' ,'April' ,
|
|
Packit |
667938 |
'May' , 'June' , 'July' , 'August' , 'September' ,
|
|
Packit |
667938 |
'October' ,
|
|
Packit |
667938 |
'November' , 'December' )[(localtime($time))[4]];
|
|
Packit |
667938 |
my ($mday,$year,$hour,$min) = (localtime($time))[3,5,2,1];
|
|
Packit |
667938 |
if ($min<10) {$min = "0$min";}
|
|
Packit |
667938 |
return "$wday, $mday $month ".($year+1900)." at $hour:$min";
|
|
Packit |
667938 |
}
|
|
Packit |
667938 |
|
|
Packit |
667938 |
|
|
Packit |
667938 |
|
|
Packit |
667938 |
|