rsync 在第一次运行时不使用增量传输

rsync 在第一次运行时不使用增量传输

我正在尝试通过慢速互联网连接(上传速度为 90kbyte/s)将一个大型本地目录(使用 Cygwin 上的 rsync 3.0.7 的批处理文件,Windows 7 x64,30k 个文件,200gb 大小)同步到远程服务器(内核为 2.6 的 Debian x64,rsyncd 3.0.7)。

我知道几乎所有文件都是相同的,并且我使用本地和远程的 md5sum 进行了验证。

但是,当我从本地机器执行 rsync 时,每个文件第一次都会被完全传输。当我在几次传输后终止批处理文件并再次运行它时,已经传输的文件会被跳过。但是,一旦它到达尚未传输的文件,它就会再次上传整个文件,而不是注意到本地和远程的校验和是相同的。

调用 rsync 的批处理文件如下所示(此处添加了反斜杠和换行符以便于阅读):

c:\cygwin\bin\rsync.exe --verbose --human-readable --progress --stats \
    --recursive --ignore-times --password-file pwd.txt \
    /cygdrive/d/ftp/data/ \
    rsync://[email protected]:33400/data/  |  \
    c:\cygwin\bin\tee.exe --append rsync.log

我尝试使用以下参数的不同组合但也没有帮助:

--checksum --partial --partial-dir=/tmp/.rsync-partial --compress

答案1

您理解的是向后的意思--ignore-times。使用此选项,您将强制更新所有内容。

引用手册页:

   -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.

如果文件在两个目标上的时间戳不相同,则必须使用该--checksum选项。我建议在执行一次后确保时间戳匹配,以便将来可以使用快速检查。

相关内容