Blame contrib/mrtg-archiver/backup.pl

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

Server Summary for %s

</CENTER>
Packit 667938

    Packit 667938
    ",$date,$date;
    Packit 667938
    foreach $node ( @nodes_to_backup ) {
    Packit 667938
        printf IDX "
  • %s
  • \n",$node,$node;
    Packit 667938
    }
    Packit 667938
    print IDX "

    </BODY></HTML>";
    Packit 667938
    close(IDX);
    Packit 667938
    chmod(0644,$INDEX);
    Packit 667938
    Packit 667938
    chop ($time = `date +%H:%M:%S`);
    Packit 667938
    print "Backup for day $date finished at $time.\n";