After searching everywhere I have not managed to find a specific answer for my question.

On Windows there is an application called FTPbox that will automatically sync a local folder with an ftp one every set period of time.

My question is, how do I achieve the same thing using Ubuntu? The main thing is here that I dont want to have to do it manually. It needs to be a totally automatic process with no human intervention required (obviously I will have to set this up if that classes as human intervention LOL).

Many thanks in anticipation for helpful answers.



First solution

Install lftp

sudo apt-get install lftp

after that create script


lftp -f "
open $HOST
user $USER $PASS
mirror --reverse --delete --verbose $SOURCEFOLDER $TARGETFOLDER

Save it on some place with name upload.sh. Give it +x permission.

sudo chmod +x /path_to_script/upload.sh

Setup crontab to run this command on every x period of time

For editing crontab run

crontab -e

For running command on every 5 min code is

 */5 * * * * /path_to_script/upload.sh

on every hour

 0 */1 * * * /path_to_script/upload.sh

to run on 4 am

 0 4 * * * /path_to_script/upload.sh

Solution two

Create a small and easy script called lftp-script that LFTP can read:

open ftp://username:password@website.com
mirror -v --only-newer /home/local/path/ /website.com/public_html/

Finally you can run LFTP and start the synchronisation. Set crontab like I write but put command

lftp -f /path/to/lftp-script

something like this

 */5 * * * * lftp -f /path/to/lftp-script

Solution three

Install curlftpfs

sudo apt-get install curlftpfs

you need to do in order to mount ftp locally is to to run these commands create dir witch will be sync-ed

mkdir hostr

mount remote ftp dir to local

sudo curlftpfs -o allow_other ftp://user:pass@ftp.example.com host

user:pass is the username and password to log into ftp account.

You can add curlftpfs to fstab for automatic mounting by using this line :

curlftpfs#user:pass@ftp.example.com /mnt/host fuse rw,uid=500,user,noauto 0 0
  • 1
    TARGETFOLDER='/new' = folder on ftp? SOURCEFOLDER='/home/myuser/backups' = local folder with files i want to upload? – Edward Nunn Apr 18 '16 at 11:44
  • yes and yes. :) – 2707974 Apr 18 '16 at 11:46
  • saying this Transferring file Untitled 1.odt' mirror: /home/edward/bl3/bl2/bl1/Untitled 1.odt: No such file or directory Unknown command ;' – Edward Nunn Apr 18 '16 at 11:58
  • Based on ftp server path meybe not only /new folder. Check both path. – 2707974 Apr 18 '16 at 12:01
  • 1
    Very neat! Is it possible to move the files? I.e. remove files that has already been uploaded? Need some way of knowing whether a file has been uploaded or not. Also; what happens if connection are lost in the different solutions? Will it retry to connect and how does one get notified? – mr.bjerre Oct 10 '19 at 7:49

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.