#!/usr/bin/perl use strict; use warnings; use File::Copy; use Net::FTP; use Net::Netrc; # change directory chdir "/var/ftp/files" or die "/var/ftp/files: $!\n"; # DO NOT transfer without info file -f "/home/ftp/files/info" or die "info file is missing\n"; open(FILE, ""); while ( ) { s/\W*$//; next if (!$_); /^(.+?) \s+ (.+?)$/x; my ($old, $new) = ($1, $2); rename $old, $new; # rename files # ftp transfer my $server = "X.X.X.X"; my $ftp = Net::FTP->new ($server, Timeout => 9000, Debug => 3); $ftp or die "$server: cannot connect: $@"; # If you don't use ~/.netrc $ftp->login ('anonymous', 'someone@mydomain')  or die "$_: cannot logon: " . $ftp->message; $ftp->put ($2) or die "$server: cannot put $2: " . $ftp->message; sleep ( 5 * 60 ) }