Hello,

I am neeing some help on a script that I am writing.  Here is what I have so far:

my $startdir = "/opt/log/hosts/";
use File::Find;
#use strict;
use warnings;
my @dirlist;
 
@logfile = ("cron","messages","maillog","ldap");
foreach $log (@logfile) {
sub eachFile {
 if (-e $_ && $_ =~ /$log$/) { push @log, $File::Find::name;}
                }
 
                                                                                 
find (\&eachFile, "$startdir");
                }
foreach $file(@log){
#system("gzip $file");
print "$file done!\n";
 
                }

It currently looks for @logfile and then gzips them.  What I am needing help with now 
is this.  It gzips all the files, and I only want it to gzip the files from the 
previous day.  Here is an example of what it finds..

/opt/log/hosts/server_ip/2003/08/04/maillog done!
/opt/log/hosts/server_ip/2003/08/03/maillog done!
/opt/log/hosts/server_ip/2003/08/02/maillog done!
/opt/log/hosts/server_ip/2003/08/01/maillog done!
/opt/log/hosts/server_ip/2003/07/31/maillog done!

Whenever the date changes to the next day, then a new dir is created and new log files 
are written to that dir.

An Idea that I had was to check the current date against the date # in the dir, ie 31, 
01, 02.. from above and if the current date does not equal that number then gzip the 
files in it.

How does this sound?  Is there a better way to do this?

Thanks,

Keith

-- 


-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to