Script I.1.1: Basic Log File Rotation

Rotate logs before they bury you:
  access_log.3 => access_log.4
  access_log.2 => access_log.3
  access_log.1 => access_log.2
  access_log   => access_log.1

Basic Rotation Script

 #!/usr/local/bin/perl
 $LOGPATH='/usr/local/apache/logs';
 @LOGNAMES=('access_log','error_log','referer_log','agent_log');
 $PIDFILE = 'httpd.pid';
 $MAXCYCLE = 4;

 chdir $LOGPATH;  # Change to the log directory
 foreach $filename (@LOGNAMES) {
    for (my $s=$MAXCYCLE; $s >= 0; $s-- ) {
        $oldname = $s ? "$filename.$s" : $filename;
        $newname = join(".",$filename,$s+1);
        rename $oldname,$newname if -e $oldname;
    }
 }
 kill 'HUP',`cat $PIDFILE`;

<< Previous Contents >> Next >>

Lincoln D. Stein, lstein@cshl.org
Cold Spring Harbor Laboratory
Last modified: Mon Aug 17 10:18:35 PDT 1998