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