ciscoindex.pl
上传用户:shbosideng
上传日期:2013-05-04
资源大小:1555k
文件大小:6k
- # ciscoindex.pl
- ###############################################################################
- # Written 6/14/1999 by Tim Cimarusti tim@cimware.com
- #
- # This PERL script will read in the MRTG config file and a Cisco router
- # config file (created by the "write network" command) and create a HTML
- # index for the interfaces that corresponds with MRTG.
- # It sorts the output by interface type and adds descriptions,
- # IP addresses, DLCI numbers, and bandwidth to the HTML.
- #
- ###############################################################################
- # usage : ciscoindex.pl <mrtg-config-file-name> <cisco-config-file-name>
- #
- # Note: The HTML document will be named <hostname>.html
- # where <hostname> is whatever is in the router config.
- #
- ###############################################################################
- #
- # Revised 2/5/2001 - Now works with version 2.9.7 of MRTG
- #
- ###############################################################################
- $MRTGCFG = $ARGV[0];
- $CiscoCFG = $ARGV[1];
- &ProcessMRTGFile;
- &ProcessCiscoFile;
- &PrintHTML;
- exit(0);
- #
- # Read the MRTG config file to find out the interfaces.
- #
- sub ProcessMRTGFile {
- open (MRTGFile, $MRTGCFG ) || die "Can't find MRTG config file. $!n";
- while(<MRTGFile>) {
- chomp;
- if ($_ =~ /SetEnv/) {
- @a=split " ", $_;
- if ($a[0] eq "#") { next; } # Skip commented interfaces
- $intf[$x]=substr($a[2],16,-1); # Find the Interface name
- @c=split "]", substr($a[0],7); # Find the name of the mrtg html page
- $num[$x]=$c[0];
- $x++;
- }
- }
- close MRTGFile;
- }
- #
- # Read down the Cisco Router config file to find out info about each interface.
- #
- sub ProcessCiscoFile {
- open (CiscoFile, $CiscoCFG ) || die "Can't find Cisco config file. $!n";
- while(<CiscoFile>) {
- chomp;
- if ($_ =~ /hostname /) { $hostname = substr(lc,9); next;}
- if ($_ eq "no ip address") { next; }
- if ($_ eq "!") { $found="n"; }
- if ($_ =~ /interface /) {
- @x=split " ", $_;
- for ($i=0; $i <= $#num; $i++) {
- if ($x[1] eq $intf[$i]) { $found = "y"; last;}
- }
- }
- if ($found eq "y") {
- if ($_ =~ /description/) { $description[$i] = substr($_,13); }
- if ($_ =~ /bandwidth/) { @x=split " ", $_; $bandwidth[$i] = $x[1]; }
- if ($_ =~ /interface-dlci/) { @x=split " ", $_; $dlci[$i] = $x[2]; }
- if ($_ =~ /ip address/) { @x=split " ", $_; $ipaddress[$i] = $x[2]; }
- }
- }
- close CiscoFile;
- }
- #
- # Create a HTML document.
- #
- sub PrintHTML {
- # Change this to whatever directory you use for serving up the files
- $mrtgdir="/mrtg/$hostname/";
- $HTMLOut = $hostname.".html";
- open (HTMLFile, ">$HTMLOut") || die "Couldn't create HTMLOUT file. $!n";
- # use binmode on UNIX servers
- binmode HTMLFile;
- print HTMLFile "<html>n";
- print HTMLFile "<!-- Created by ciscoindex.pl : Visit www.cimware.com --->n";
- print HTMLFile "<head><title>".$hostname.": Summary of today's activity</title>n";
- print HTMLFile "<meta name='keywords' content='$hostname, MRTG'></head>n";
- print HTMLFile "<body bgcolor=ffffff>n";
- print HTMLFile "<h1>".$hostname."</h1>n";
- print HTMLFile "<hr>nn";
- # print HTMLFile "<a href=".$mrtgdir.$hostname.".cpu.html><b>CPU</b></a><br>n";
- # print HTMLFile " <blockquote><font size=-1><i>n";
- # print HTMLFile " <a href=".$mrtgdir.$hostname.".cpu.html><img border=0 src=".$mrtgdir.$hostname.".cpu-day.png></a>n";
- # print HTMLFile "</i></font></blockquote><hr>nn";
- print HTMLFile "n";
- # I like to sort my interfaces.
- for ($i=0; $i <= $#num; $i++) { if (substr($intf[$i],0,4) eq "Fddi") { &PrintRecord; } }
- for ($i=0; $i <= $#num; $i++) { if (substr($intf[$i],0,12) eq "FastEthernet") { &PrintRecord; } }
- for ($i=0; $i <= $#num; $i++) { if (substr($intf[$i],0,8) eq "Ethernet") { &PrintRecord; } }
- for ($i=0; $i <= $#num; $i++) { if (substr($intf[$i],0,9) eq "TokenRing") { &PrintRecord; } }
- for ($i=0; $i <= $#num; $i++) { if (substr($intf[$i],0,7) eq "Serial0") { &PrintRecord; } }
- for ($i=0; $i <= $#num; $i++) { if (substr($intf[$i],0,7) eq "Serial1") { &PrintRecord; } }
- for ($i=0; $i <= $#num; $i++) { if (substr($intf[$i],0,7) eq "Serial2") { &PrintRecord; } }
- for ($i=0; $i <= $#num; $i++) { if (substr($intf[$i],0,7) eq "Serial3") { &PrintRecord; } }
- for ($i=0; $i <= $#num; $i++) { if (substr($intf[$i],0,7) eq "Serial4") { &PrintRecord; } }
- for ($i=0; $i <= $#num; $i++) { if (substr($intf[$i],0,7) eq "Serial5") { &PrintRecord; } }
- for ($i=0; $i <= $#num; $i++) { if (substr($intf[$i],0,7) eq "Serial6") { &PrintRecord; } }
- for ($i=0; $i <= $#num; $i++) { if (substr($intf[$i],0,7) eq "Serial7") { &PrintRecord; } }
- for ($i=0; $i <= $#num; $i++) { if (substr($intf[$i],0,7) eq "Serial8") { &PrintRecord; } }
- for ($i=0; $i <= $#num; $i++) { if (substr($intf[$i],0,7) eq "Serial9") { &PrintRecord; } }
- print HTMLFile "</body>n";
- print HTMLFile "</html>n";
- close (HTMLOut);
- }
- # Print section for each record.
- sub PrintRecord {
- print HTMLFile "<a href=".$mrtgdir.$num[$i].".html><b>".$intf[$i]."</b></a><br>n";
- print HTMLFile " <blockquote><font size=-1><i>n";
- if ($description[$i] ne "") { print HTMLFile " Description : ".$description[$i]."<br>n"; }
- if ($ipaddress[$i] ne "") { print HTMLFile " IP Address : ".$ipaddress[$i]."<br>n"; }
- if ($bandwidth[$i] ne "") { print HTMLFile " Bandwidth : ".$bandwidth[$i]."<br>n"; }
- if ($dlci[$i] ne "") { print HTMLFile " DLCI : ".$dlci[$i]."<br>n"; }
- print HTMLFile " <a href=".$mrtgdir.$num[$i].".html><img border=0 src=".$mrtgdir.$num[$i]."-day.png></a>n";
- print HTMLFile "</i></font></blockquote><p>nn";
- print HTMLFile "n";
- }