Recursive upload a directory to remote ftp location

lftp is required.

The command is:

nohup lftp -e 'mirror -R /var/www/virtual/htdocs/kernels /kernel/htdocs' -u username,password

The nohup is added to prevent disconnections until the process is completed.

-R indicates reverse transfer (from local to remote)


Normal lftp syntax (Manual method):

lftp -u username,password

Now you can use various commands like:

ls – list directory

rm – delete files

rm -r recursive delete a directory

You may wish to set certain options in the lftp config file at ~/.lftp/rc:

set ftp:ssl-allow 0
set ssl:verify-certificate no
set ftp:list-options -a
debug 3


You are reading this post on Joel G Mathew’s tech blog. Joel's personal blog is the Eyrie, hosted here.