I am trying to write a very simple program that will be
called from other scripts.
I want to ftp from a machine into another machine,
do a find,ftp all the files, not the directories
(.: or ..:) and close my connection.
So far, I have it where I can do the 'find', but I think I am
doing the 'find' in the local machine, also, I can't figure out how
to place the results of the 'find' into an array so I can later
do a 'foreach' loop on the array.
Any pearls of wisdom?
I also know that there are other programs like 'mirror', but
I am trying to keep mine very simple. just the guts.
Really appreciate the help
Here is my program for your amusement
#!/usr/local/bin/perl use Net::FTP; use File::Find; @ARGV = "." unless @ARGV; sub showfiles { print "$File::Find::name/\n" if !-d; } my $dir = '/my/remote/directory/path'; my $host = '123.45.67.890'; my $login = 'userlogin'; my $passwd = 'userpassword'; my $ftp = Net::FTP->new($host); my $RC = $ftp->login("$userlogin","$userpassword"); if (not $RC) { print "\n\nFTP Login to Remote Host: '$host' failed!\n\n"; print "No files updated from Remote host: '$host'!\n\n"; exit; } # Go to the specified directory print STDERR "Changing directory to <$dir>\n" if ($DEBUG); if ($ftp->cwd($dir) == 0) { warn "$program: can't change directory to <$dir>\n"; return(1); } find(\&showfiles, @ARGV); $ftp->quit;
In reply to ftp'ing 'Find' results from an array by ortsac
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |