#!/usr/bin/perl use strict; use warnings; use Net::FTP; use POSIX qw(strftime); my $SERVER=xxx; my $USERNAME=yyy'; my $PASSWORD='zzz'; my $DIRECTORY='_test_data'; # a regexp my $filemask='\.stm$'; my $timeNow=time; # substract 14 days * 24 hours * 60 mins * 60 secs $timeNow-=(14*24*60*60); my $timeThen=strftime "%Y%m%d%H%M%S", localtime($timeNow); print "timeNow = $timeNow \n"; print "timeThen = $timeThen \n"; print "filemask = $filemask \n"; my $ftp = Net::FTP->new($SERVER, Passive => 1) || die "Cannot connect: $!\n"; $ftp ->login($USERNAME,$PASSWORD) || die "Cannot login: ".$ftp->message." \n"; print "Connected \n"; $ftp->cwd("$DIRECTORY"); print "Changed directory\n"; my @files = $ftp->ls(); chomp( @files ); for my $file (@files) { print "Testing file : $file\n"; if ( $file !~ /\.stm$/) { print "Skipping : $file is not an .stm type file\n"; next; } my $mtime = $ftp->mdtm($file); die "cannot get mdtm for $file\n" if ! $mtime; print "$file last modified : ", scalar localtime($mtime), "\n"; if ( $mtime < $timeThen ) { print "Removing file : $file\n"; $ftp->delete($file); print $ftp->message, "\n"; } } print "quitting"; $ftp->quit();