Stellarcore.net

Stellarcore.net

This script is used to generate Analog logfiles for multiple Vhosts. The logic is each vhost has a configuration file in a target directory, for every .cfg file a log will be read and output will be generated by analog. I used this setup from 1998 until about 2003. I have switched to Webalizer for now but I still think Analog is great Apache Log Summary Tool.

#!/usr/bin/perl

#My Analog Cron job
#Written by Mike Tremaine mgt-@@-stellarcore.net 08/09/00
#Create website.com.cfg files in the $CONF_DIR
#Currently will run once a week and generate weekly report

use strict;
use File::Copy;

my $CONF_DIR = "/etc/analog_conf";
my $LOG_DIR = "/var/log/httpd";
my $Today = `date +%Y-%m-%d`;

chomp $Today;

opendir(DIR, "$CONF_DIR") || die "Can not open DIR  $!";
my @dir_data = (grep(/\.cfg$/, readdir(DIR)));
closedir(DIR) || die "Can not close DIR  $!";

for my $targets (@dir_data) {

my $infile = "$CONF_DIR/$targets";
`/usr/bin/analog -G +g$infile +F-00-00-07 +T-00-00-00`;

my $log_file = $targets;
$log_file =~ s/.cfg$/-access_logs/;

copy ("$LOG_DIR/$log_file", "$LOG_DIR/Archives/$log_file-$Today") || die "Can't copy $log_file $!\n";

open (NEWFILE, ">$LOG_DIR/$log_file") || die "Can't open $log_file $!\n";
close (NEWFILE);

}

exit;
A sample CONF file