my $ftp = 0;
my $ftp_login = "pegausr";
my $ftp_password = "*****";
my $ftp_server = "172.27.70.36";
#csv file
my $ftp_orig_dir_csv = "/app/pega/sbs/qa/logs/prpc/";
$ftp = Net::FTP->new($ftp_server, Debug => 0)
or die "Cannot connect to $ftp_server: $@";
print "CONNECTED TO $ftp_server\n";
$ftp->login($ftp_login,$ftp_password)
or die "Cannot login ", $ftp->message;
print "Logged as : $ftp_login\n";
$ftp->cwd($ftp_orig_dir_csv)
or die "Cannot change working directory ", $ftp->message;
print "Folder : $ftp_orig_dir_csv\n";
my @liste = $ftp->ls($ftp_orig_dir_csv);
while (<@liste>) {
print "fichier : $_ \n";
}
my %MONTH = (
'Jan' => '01'
,'Feb' => '02'
,'Mar' => '03'
,'Apr' => '04'
,'May' => '05'
,'Jun' => '06'
,'Jul' => '07'
,'Aug' => '08'
,'Sep' => '09'
,'Oct' => '10'
,'Nov' => '11'
,'Dec' => '12'
);
sub compareFileDate($$)
{
my ($file1, $file2) = @_;
my ($annee1, $mois1, $jour1) = ($file1 =~ m/(\d{4})-([A-Z][a-z]{2})-(\d{2}).csv/);
my ($annee2, $mois2, $jour2) = ($file2 =~ m/(\d{4})-([A-Z][a-z]{2})-(\d{2}).csv/);
my $monthnumber1 = $MONTH{($mois1)};
my $monthnumber2 = $MONTH{($mois2)};
my $date1 = $annee1.$monthnumber1.$jour1;
my $date2 = $annee2.$monthnumber2.$jour2;
return $date1 <=> $date2;
}
my @listetriee = sort compareFileDate @liste;
my $plusancien = $listetriee[0];
my $plusrecent = $listetriee[ $#listetriee ];
my $ftp_orig_file_csv = $plusrecent;
my $ftp_dest_file_csv = "C:\\test\\ftp_dest_file.csv";
print "fichier plus recent est : $plusrecent\n";
print "fichier plus ancien est : $plusancien\n";
$ftp->get($ftp_orig_file_csv, $ftp_dest_file_csv)
or die "get failed ", $ftp->message;
print "fichier $plusrecent transferé";
$ftp->quit;
Partager