in reply to Newbie: how evaluate files newer than an hour within ftp

Rather than do all that writing with Net::FTP, why not give Net::FTPSSL a try? First, it's a lot like Net::FTP and uses a similar approach; also, I think that it's easier to work with. Here's an example:
#!/usr/bin/perl use strict; use warnings; use Net::FTPSSL; use constant HOST => 'ftp.perl.org'; use constant USER => 'anonymous'; use constant PASS => 'anonymous'; use constant DIR => '/pub/CPAN/authors'; use constant FILE1 => '02STAMP'; my $ftps = Net::FTPSSL->new(HOST, Debug => 1, Encryption => CLR_CRYPT, useSSL => 1, Croak => 1, Trace => 1, PreserveTimestamp => 1); $ftps->login( USER, PASS ); $ftps->cwd(DIR); $ftps->binary; $ftps->get(FILE1); $ftps->_mdtm(FILE1); $ftps->quit;
Note that if you use Croak => 1, you don't have to use the die messages.

Replies are listed 'Best First'.
Re^2: Newbie: how evaluate files newer than an hour within ftp
by Anonymous Monk on Aug 13, 2010 at 14:45 UTC

    Still cant't figure out how to check if file is newer that an hour. I can get this:

    MDTM with FORMAT = Fri Aug 21 12:23:15 2009 Localtime No Format = Fri Aug 13 10:17:10 2010 MDTM No Format = 1250871795

    but don't know how to get the 'localtime with NO Format' to compare with the 'MDTM with NO Format'

    perl -w >> ftp.log -MNet::FTP -le' ($second, $minute, $hour, $dayOfMonth, $month, $yearOffset, $dayOfWeek +, $dayOfYear, $daylightSavings) = localtime(); $year = 1900 + $yearOffset; $theGMTime = "$hour:$minute:$second, $months[$month] $dayOfMonth, $yea +r"; ( $host, $user, $pass, $dir ) = @ARGV; $ftp = Net::FTP->new($host) or die "$@\n"; #send mail if cannot +connect do not know how to do it $ftp->login( $user, $pass ) or die $ftp->message; $ftp->cwd($dir) or die $ftp->message; $ftp->binary; for $file ($ftp->ls){ push @files, $file; } for $file (@files) { $quesesto=localtime($ftp->mdtm($file)); $localtimenoformat=localtime(time()); $mdtmnoformat=$ftp->mdtm($file); print "MDTM with FORMAT = $quesesto\n"; print "Localtime No Format = $localtimenoformat\n"; print "MDTM No Format = $mdtmnoformat\n"; #envia_mail (); } $ftp->quit or die $ftp->message; sub envia_mail { print "Content-type: text/html\n\n"; #$title=''; $to="alexis_vasquez\@codetel\.com\.do"; $from= `hostname`; #$subject=''; open(MAIL, "|/usr/sbin/sendmail -t"); ## Mail Header print MAIL "To: $to\n"; print MAIL "From: $from\n"; print MAIL "Subject: $subject\n\n"; ## Mail Body print MAIL "This is a test message \n"; close(MAIL); print "<html><head><title>$title</title></head>\n<body>\n\n"; ## HTML content sent, let use know we sent an email print " <h1>$title</h1> A message has been sent from $from to $to </body></html>"; } 'host user pass dir