Khairul Azmi wrote:
Hi all,
I have this problem. There is a script that stores log files into folders
that follows structure of the following
YYYY/MM/DD
eg..
/var/log/projects/2006/06/20/8231.tgz
/var/log/project1/2006/06/21/1432.tgz
/var/log/projects/2006/06/22/1756.tgz
/var/log/projects/2006/06/23/1756.tgz
Now I want to write a script that would erase all logs that has been
stored
except for the log for the current day. For the above example, since
today
is 23 June 2006, the code will erase log files in folders 2006/06/20/ and
2006/06/21/ only. Can somebody give ideas on how to do this. This
script is
to be ran once a day.
Thanks in advance.
mie
assuming, as you state, "erase log files" (not directories)
assuming 2 days prior as per your example
assuming all earlier log files
try this which is easy to modify if assumptions are not correct
#! /usr/bin/perl
use strict;
use warnings;
use Date::Manip;
my $directory;
my $days = 2;
while( -d
($directory =
UnixDate(DateCalc('today',"$days ago"),
'/var/log/projects/%Y/%m/%d')) ) {
unlink "$directory/*";
$days++;
}
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>