views:

520

answers:

7

Need to find a way to upload files to my server through FTP. But only the ones that have been modified. Is there a simple way of doing that? Command line ftp client or script is preferred. Thanks, Jonas.

A: 

Have you considered using the archive bit on the file?

Jim Blizard
A: 

Jonas,

How often are the files likely to change?

If they change on a predictable time frame, you could consider using the modified and other date attributes on the file.

Nick
+1  A: 

(Waiting for the comment on the main question to be answered before expanding)

The strategy would be:

  1. Find the files changed using dates, times, archive bits or hashes (depending on OS)
  2. Using this list, generate a FTP script PUTting those files
  3. Run the FTP script.
ColinYounger
+4  A: 

The most reliable way would be to make md5 hashes of all the local files you care about and store it in a file. So the file will contain a list of filenames and their md5 hashes. Store that file on your ftp server. When you want to update the files on your ftp server, download the file containing the list, compare that against all your local files, and upload the files that have changed (or are new). That way you don't have to worry about archive bits, modified date, or looking at file sizes, the use of which can never be 100% reliable.

Using file sizes isn't reliable for the obvious reason - a file could change but have the same size. I'm not a fan of using the archive bit or modified date because either of those could be confused if you backup or restore your local directory with another backup program.

mhenry1384
+3  A: 

Do you really insist on ftp, or can you use rsync instead?


If ftp is required mhenry1384's idea is roughly what rsync does (well half of it anyway, rsync also looks at modification times for files that differ...).

dmckee
A: 

Thanks guys.

I'll implement something like mhenry1384 's suggestion.

/Jonas

stackoverflow isn't quite like a discussion group. You are supposed to mark which answer you think is most correct (and then you'll probably want to delete your answer here).
mhenry1384
A: 

I know this is an old thread, but while I was looking for the same solution, I came across this link which may be rather useful: Script FTP

Surim