I've made a script to fetch files via Net::FTP. The files are in directories which correspond with days of the week (i.e. Sun Mon Tue etc...). When fetching the files I need to rename them like this
FILE-11-12-03
Using the current date, which would correspond with the day of the week directory. For example: the file in /Wed would be named FILE-11-12-03. The file in /Tue would be named FILE-11-11-03, and so on. I'm sure there must be an easy way (maybe some module), but I'm oblivious. Thanks.
use Net::FTP;
die "Please specify site.\n" unless ($ARGV[0]);
$site = $ARGV[0];
chomp ($today = `date '+%a'`);
chomp ($d = `date '+%d'`);
chomp ($m = `date '+%m'`);
chomp ($y = `date '+%y'`);
$d -= 1;
@days = grep { $_ ne $today } qw/Sun Mon Tue Wed Thu Fri Sat/;
%month = (1, 31, 2, 29, 3, 31, 4, 30, 5, 31, 6, 30, 7, 31,
8, 31, 9, 30, 10, 31, 11, 30, 12, 31);
$ftp = Net::FTP->new("$site", Debug => 0)
or die "Cannot connect to $site: $@";
$ftp->login("reap",'only.hd')
or die "Cannot login ", $ftp->message;
foreach $day (@days) {
$ftp->get("/data/logfiles/old/$day/24HourSummary.txt" ,"$site.$m-$d
+-$y")
or die "get failed ", $ftp->message;
print "Finished $site.$m-$d-$y for $day.\n";
$d -= 1;
if ($d == 0) {
$m -= 1;
$m = 12 if $m = 0;
$d = $month{$m};
}
}
$ftp->quit;