#!/usr/bin/perl
# Define list of nodes to backup
@nodes_to_backup = ('router1','router2','router3','etc');
# Get date and time of execution
chop ($date = `date +%y%m%d`);
chop ($time = `date +%H:%M:%S`);
# Define working directories
$MRTG_DIR = "/home/httpd/html/mrtg";
$BACKUP_DIR = "$MRTG_DIR/backup";
$TO_DIR = "$BACKUP_DIR/$date";
print "==================================================
Starting backup for day $date at $time.\n";
# Create daily directory and copy default GIF files
print "Creating directory $TO_DIR.\n";
mkdir($TO_DIR,"755") || die "Error creating directory $TO_DIR.\n";
chmod(0755,$TO_DIR);
system(sprintf("cp -a %s/mrtg-*.gif %s",$MRTG_DIR,$TO_DIR));
# For each node copy the daily summary file and create the index file
foreach $node ( @nodes_to_backup ) {
printf("Executing backup for node %s.\n",$node);
system(sprintf("cp -a %s/%s.*-day.gif %s",$MRTG_DIR,$node,$TO_DIR));
$Summary_Source = "$MRTG_DIR/$node.html";
$Summary_Destination = "$TO_DIR/$node.html";
open(SRC,"<$Summary_Source");
open(DST,">$Summary_Destination");
while (<SRC>) {
s/<A HREF[^>]*>//g;
s/<\/A>//g;
s/Router Overview/Router Overview of $date/;
s/<META HTTP-EQUIV=\"Refresh\" CONTENT=300 >//;
print DST; }
close(SRC);
close(DST);
chmod(0644,$Summary_Destination);
}
# Create the general index file
$INDEX = "$TO_DIR/index.html";
print "Creating index file $INDEX.\n";
open(IDX,">$INDEX") || die "Could not open index file $INDEX.\n";
printf IDX "
<HTML>
<HEAD><TITLE>Server Summary for %s</TITLE></HEAD>
<BODY BGCOLOR=\"#FFFFFF\">
<CENTER><H1>Server Summary for %s</H1></CENTER>
<P><UL type=square>
",$date,$date;
foreach $node ( @nodes_to_backup ) {
printf IDX "<LI><A HREF=\"%s.html\">%s</A></LI>\n",$node,$node;
}
print IDX "</UL></P></BODY></HTML>";
close(IDX);
chmod(0644,$INDEX);
chop ($time = `date +%H:%M:%S`);
print "Backup for day $date finished at $time.\n";