Ticket #2180: update_logdb_apache

File update_logdb_apache, 1.1 KB (added by aseques, 2 years ago)

Perl script to update logdb contents

Line 
1#!/usr/bin/perl
2
3#Capture the content of logdb file
4my %logdb;
5$rs = open (LOGDB,'+<',"/var/log/ispcp/logdb");
6        while (<LOGDB>) {
7                my ($logdb_key,$logdb_val) = split(' ',$_);
8                $logdb{$logdb_key} = $logdb_val;
9        }
10
11
12#We are only taking care of http entries this time
13delete $logdb{"mail.log"};
14delete $logdb{"proftpd/ftp_traff.log"};
15
16# for each element on the hash compare the real position with the logdb entry
17while ( ($k,$v) = each %logdb ) {
18    my $pos = 0;
19    my $file = "/var/log/apache2/" . $k;
20    $rs = open(LOGFILE,'<',$file);
21    seek(LOGFILE,0,0);
22    while (<LOGFILE>) {
23        $pos = tell(LOGFILE) if (eof(LOGFILE));
24        }
25    close(LOGFILE);
26    if ($v > $pos)
27        {
28        $v = $pos;
29        }
30        $logdb{$k}=$v;
31}
32close(LOGDB);
33
34my $new_file = "/tmp/new_logdb";
35system ("cat /var/log/ispcp/logdb | grep mail.log > $new_file");
36system ("cat /var/log/ispcp/logdb | grep proftpd  >> $new_file");
37$rs = open (NEWLOGDB,'>>',$new_file);
38foreach my $logdb_key (keys %logdb) {
39        print NEWLOGDB "$logdb_key $logdb{$logdb_key}\n";
40}
41close (NEWLOGDB);
42
43system ("cp /var/log/ispcp/logdb /tmp/logdb.old");
44system ("cp /tmp/new_logdb /var/log/ispcp/logdb");