"Keith Olmstead" <[EMAIL PROTECTED]> wrote in message
news:[EMAIL PROTECTED]
> Hello,
>
> Been searching though this list for awhile now, and now I am needing some
help.  I am not asking for someone to do my code for me,  I am trying to
learn perl and the only way for me to do that is to dive staight into it.
>
> My problem is with the theory of the script that I am trying to write.  I
am needing something to backup logs for me from a central log server.  They
layout of these files are as follows.
>
> /host/ip/year/month/day/log1, log2, etc
>
> Every file and dir under dir1 is created dynamically by the logging
program, syslog-ng.
>
> What I am wanting to do is create a script that will tar and gzip the day
dirs at the end of the day and remove the dir after it has been backed up.
After the month is finished, I would like the same done for it.
>
> Currently there are 20ish host dirs, one of each server that is logging to
this box.  There will be more and when they get pointed to this server, the
ip dir will be created for that host and each dir under that will also be
created for the corresponding date.  The logs need to be kept for 2-3
months, and then deleted.
>
> I am needing help thinking this script out, maybe get ideas of how to set
it up.  From reading using File::Find, might be useful.
>
> I was thinking about writing a script that runs in cron each night that
tars and gzp the log dirs.  Currently I have a script that is getting a list
of the dir, but I don't really know  where to go from there.  I need to get
it to dive into the dir to the day lvl and archive the previous days logs.
>
> Here are 2 scripts that I have been playing with.  I don't even know if I
am going in the right direction.
>
> #!/usr/bin/perl
> use strict;
> use warnings;
>
> my $dir = '/opt/log/hosts/';
>
> opendir(DIR, $dir) or die "Cannot open Directory";
>
> # read the dir contents into a list, and grep out the . and .. dir entries
> my @entries = grep (!/^\.\.?$/ , readdir (DIR));
> closedir(DIR);
> foreach (@entries)
> {
>   print "$_\n";
> }
>
> and
>
> #!/usr/bin/perl
>
> use File::Find;
> use strict;
> use warnings;
> my $startdir = $ARGV[0];
> my @dirlist;
> find(
>     sub {
>         return if -d and /^\.\.?$/;
>         push @dirlist, $_ if -d;
>     }, $startdir);
>
> #my $file_list = join '<BR>', @dirlist;
> my $file_list = @dirlist;
> print $file_list;
>
> Like I said before, I am not asking for someone to do my work just some
guidiance in the right direction.
>
> TIA,
>
> Keith Olmstead
>
>
>

File Find is a good place to start. Also do a search on search.cpan.org for
Zip. Assuming the script is running on the server with the logs you should
be able to do everything you want with these two modules.

Paul Kraus



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

Reply via email to