0

I'm trying to synchronize a large local directory (with a batch file using rsync 3.0.7 on Cygwin, Windows 7 x64, 30k files, 200gb size) to a remote server (Debian x64 with kernel 2.6, rsyncd 3.0.7) over a slow internet connection (90kbyte/s upload).

I know almost all files are identical and I verified that using md5sum locally and remotely.

However when executing rsync from my local machine every file gets transferred completely for the first time. When I terminate the batch file after a few transfers and run it again then the already transferred files are skipped. But as soon as it gets to a file not yet transferred it uploads the file as a whole again instead of noticing that the checksum is the same locally and remotely.

The batch file calling rsync looks like this (backslashes and line brakes added here for readability):

c:\cygwin\bin\rsync.exe --verbose --human-readable --progress --stats \
    --recursive --ignore-times --password-file pwd.txt \
    /cygdrive/d/ftp/data/ \
    rsync://remoteuser@remoteserver.domain.org:33400/data/  |  \
    c:\cygwin\bin\tee.exe --append rsync.log

I experimented using the following parameters in varying combinations but that didn't help either:

--checksum --partial --partial-dir=/tmp/.rsync-partial --compress
ockzon
  • 1

1 Answers1

3

You have the meaning of --ignore-times backwards. With this option you will force it to update everything.

Quoting the man page:

   -I, --ignore-times
          Normally rsync will skip any files that are already the same size
          and have the same modification timestamp.   This
          option turns off this "quick check" behavior, causing 
          all files to be updated.

If files doesn't have the same timestamps on both targets, you will have to use the --checksum option. I would recommend to make sure the time-stamps matches after doing this one time, so you can use the quick check in the future.

Sven
  • 98,649
  • 14
  • 180
  • 226