maniu@securebrain.com:~/script# vi ftp_get.pl




use Net::FTP;
use Time::Local;
use File::stat;

my $data;
my $ora;
my $ftp;
my $Source = "192.168.1.1";
my $User = "myuser";
my $Password = "mypasswd";
my $DirOrigine = "dir";
my $DirDestinazione = "C:\\My\\Dest";
my $PatternOrig = "*.*";
my @elenco;
my $Elemento;
my $ritenta;
my $File;
my $FileData;
my $FileSize;
my $modifica;
my $status;

$data = `date /T`;
$ora = `time /T`;
chomp($data);
chomp($ora);

$ftp = Net::FTP->new($Source);
$ftp->login($User,$Password);
$ftp->binary();
$ftp->cwd($DirOrigine);

@elenco = $ftp->ls("$PatternOrig");
$ftp->quit;
print "Inizio FTP Download. $data $ora\n";
print "@elenco\n";

foreach $Elemento (@elenco)
        {
        	$ritenta = 1;
        	while($ritenta <= 3)
        		{
#                print "$Elemento\t\t";
#                ($Data,$Size,$File) = $Elemento =~ /(.*M)\s*?(\d*) (\w{0,8}\.\w{0,3}$)/;
								$File = $Elemento;
                next if ($File eq "");
#                print "-$File- -$Data-\n";
                $ftp = Net::FTP->new($Source);
                if (!defined($ftp))
                	{
                		print "Errore FTP: $@\n";
                		die("");
                	}
                $ftp->login($User,$Password);
                $ftp->binary();
                $ftp->cwd($DirOrigine);

								$FileData = $ftp->mdtm("$File");
								$FileSize = $ftp->size("$File");
#                ($mese,$giorno,$anno,$ora,$min,$AMPM) = $Data =~ /^(\d\d)-(\d\d)-(\d\d)  (\d\d):(\d\d)(\w\w)$/;
#                $ora += 12 if ($AMPM eq 'PM');
#                $ora = 0 if $ora == 24;
#                $anno += 2000 if $anno < 70;
#                $mese--;

#                if ($mese < 0 or $mese > 11)
#                	{
#                		print "$Elemento\n-$File- -$Data-\n";
#                		print "$giorno,$mese,$anno,$ora,$min\t\t$Data\n";
#                	}
#                $modifica = timelocal(0,$min,$ora,$giorno,$mese,$anno);
#                print "$giorno,$mese,$anno,$ora,$min\t\t$modifica\n";
								$modifica = $FileData;
#print "$modifica - $Size\n";
                if (-e "$DirDestinazione\\$File")
                        {
#                        	print "Il file esiste... ";
                                $status = stat("$DirDestinazione\\$File");
                                if ($modifica == $status->mtime and $FileSize == $status->size)
                                        {
#                                                printf "Il file e' uguale: size  %s modificato il %s\n",$status->size,$status->mtime;
                                                $ritenta = 4;
                                                next;
                                        }
                        }
                print "Scarico $File ";
#                $modifica = $ftp->mdtm($File);
#                $size = $ftp->size($File);
#                print "Modificato il $modifica Dimensione $size\n";
                if ($ftp->get("$File","$DirDestinazione\\$File"))
                        {
                                print "OK\n";
                                $ritenta = 4;
                        }
                else
                        {
                                print STDERR "$File Scarico NON OK --> $^E\n";
                                print "\n";
                                $ritenta++;
                        }
                utime $modifica,$modifica,"$DirDestinazione\\$File";
                	
                $ftp->quit;
               }
        }
$data = `date /T`;
$ora = `time /T`;
chomp($data);
chomp($ora);
print "Fine FTP Download. $data $ora\n";




:q!