I am using rsync 2.6.9 in daemon mode under Cygwin, and having trouble
reconciling its --append behavior with that described in the man page:
The man page says that when you use --append, it will update a file by
appending, which presumes the existing data on the receiving side
matches. But when I run rsync with append mode when the existing file
on the receiving side is shorter than on the sending side, the first
thing it does is (I think) is to read either most of or all of the
file on the remote sending end: on the local receiving end, it says
"recv_generator()" for each of the files, "generating and sending
sums
for 1", and then "generate_files phase=1", and then no progress
for
several minutes. After that several minutes, apparently a
block-by-block comparison of the existing data starts. This operation
seems to happen as fast as rsync can read the file from the local
disk. (i.e. it is not network limited) But that takes quite a while
for a >10 GB file. When this process starts, it says
"recv_files(filename)", "recv mapped filename of size
13050470128",
and then updating lines like this:
369262592 2% 12.07MB/s 0:17:15
Eventually it finishes reading through the existing local file, and
starts appending new data.
I thought that when using --append, rsync will presume that existing
data matches, and just start appending more data, putting off file
data comparison until after the transfer is complete.
Also, the man page says that in --append mode, only files that are
shorter on the receiving side are sent. But I've found that files
that are the same length are sent also.
Here is the command I'm executing:
rsync -rzvvv --inplace --append --progress --stats --timeout=7200 --port=2005
remote-host::d-video-rsync/ /cygdrive/d/video
Incidentally, I am forced to use a very long time-out. Otherwise I
experience a time-out error during the first long phase, when I see no
progress on the local receiving end, and the remote end is apparently
reading through the entire file.
Thanks,
Jacob