0

I have a script running on several computers that mounts a remote directory and transfers from the local disk to that mounted directory. I have rsync running with the -a tag, but for some reason files aren't getting updated.

From my understanding, if you put "rsync -av " then anything that is different on the local will be moved to the remote. When I run with a -vv tag it shows the files being listed and it says they are "uptodate", but if I run a diff on the two locations I can see that they are not(They differ by one line).

Is there something I'm missing? It should't matter, but I'm running rsync version 2.6.8 protocol version 29

1 Answers1

2

By default rsync only looks at file size and lost modification time to figure out if a file is up to date or not. While not perfect, it's usually a good performance trade off.

You might want to start by examining the modification time and file size value. There is also the option of using the -c parameter, which actually compares checksums.

andol
  • 6,938
  • 29
  • 43
  • Okay, so it doesn't initially do a diff, but when you say it checks if it is up to date, if the file is older, or the file size is smaller, will it still move it? –  Mar 10 '10 at 16:42
  • +1 I was just typing the same thing. - Never mind as long as someone answers! I suggest running again with the --checksum flag – Richard Holloway Mar 10 '10 at 16:43
  • checksum isn't a viable options, as I have several thousand files and some can be quite large. I'm wondering how exactly the difference engine works based on file size and mod time. I would assume that if the file is newer, and the size is different then it will transfer. If so, then my files are meeting that criteria, I'm just not sure why it's not transfering. –  Mar 10 '10 at 16:55
  • Does ramping up verbosity to -vvv show anything useful? – Richard Holloway Mar 10 '10 at 16:59
  • Could you not do a test rsync of just that one file using the --checksum option? – Richard Holloway Mar 10 '10 at 17:00
  • 1
    It randomly started working... I started by rsyncing the specific file, then deleting that change and rsyncing the directory above that, etc, and now it's working, without the -c flag... I'm double checking by running my script. –  Mar 10 '10 at 17:07