Thanks in advance,
jas
#!/usr/bin/perl
# Modules to use use strict; use warnings; use POSIX qw(strftime); use Archive::Tar; use Compress::Zlib; use File::Find; use Net::FTP;
# Current date stamp
my $date = strftime('%Y%m%d', localtime());# Create tarball from /path/to/www/ directory
my @files;
find(sub { push @files,$File::Find::name },"/path/to/www/");
Archive::Tar->create_archive("www.tar",0,@files);# Create Archive from recently created tarball
my $gz = system('gzip -9 www.tar');
$gz = system('mv -f www.tar.gz ' . $date . '-www.tar.gz');# Remove outdated archives from ftp.serv
my $ftp = Net::FTP->new("ftp.serv", Debug => 1)or die "Could not open Connection to ftp.serv";
$ftp->login("login", 'password')or die "Could not login to ftp.serv: $@";
# Upload all archives in /path/to/backups/ directory
foreach my $bup (glob('/path/to/backups/*-www.tar.gz')) {
$ftp->put($bup) or die "Could not transfer files ", $ftp->message; }# Begin search for archives older than 30 days on server my @alst = $ftp->ls;
my $tdy = (30 * 24 * 60 * 60);
my $tme = localtime();
my @list;
foreach my $file(@alst) {
if($file =~ /^(\d{8})-www\.tar\.gz$/) { my $fdte = $1;
my $fyyyy = substr($fdte, 0, 4);
my $fmm = substr($fdte, 4, 2);
my $fdd = substr($fdte, 6, 2);my $ftme = $fdd, $fmm, $fyyyy;
if($fdte < $date) {
push @list, $file;
} else {
warn "Skipping recent file: $file"; }
} else {
warn "Skipping improper file format: $file"; }
}
foreach my $file(@list) {
$ftp->delete($file)or warn "Cannot delete remote file ($file): " . $ftp->message; }
$ftp->quit;
-- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] <http://learn.perl.org/> <http://learn.perl.org/first-response>
