Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

I need to syncronize files in my computer with server to which I have only FTP access. So I can't use rsync (that would need at least SFTP, but the only channel available for me is plain vanilla FTP).

I only need one-way syncronization: from my machine to server. I have heard of a program called unison, but it seems to be meant for two-way syncronisation and I'm unsure whether it could be tweaked to do what I want. I should also add that the program should work non-interactively, so that it could be used inside a script.

Final option would be to write my own script that compares files by modification time (or something like that) and copies over the ones that have changed. I have already managed to mount the FTP directory to a local directory, so the problem boils down to just syncing two directories. But my gut feeling tells me, that there must be something like that already existing in the wild.

share|improve this question

3 Answers 3

up vote 5 down vote accepted

Because I couldn't get wput to work (it gave me Segmentation fault for what ever I tried to upload), I looked for an alternative and found: ncftp.

More specifically ncftpput, that seems to da almost the same that wput was designed to do. Most importantly for me, it didn't crash like wput. And indeed it manages to upload only those files that haven't changed using the -z option:

ncftpput -z -u user -p pass ftp.mydomain.com dir/name files-to-upload...
share|improve this answer
    
worked perfectly for me –  roman m Nov 13 '09 at 21:01

Sure, and it is called wput

share|improve this answer
    
Of course! How did I not think about that. Totally forgot that program. I think it will work, but I'll report back when I get back home to try it out... –  Rene Saarsoo Sep 2 '09 at 7:48
    
For some reasin wput gives me "Segmentation fault" when ever I try to upload something. –  Rene Saarsoo Sep 2 '09 at 16:03

lftp seems also appropriate here: http://stackoverflow.com/a/693280/480534

Summary:

lftp <username>@<server>
  mirror -c <source> <dest>
  exit
share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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