有人知道为什么 rsync 会一遍又一遍地发送文件吗?

有人知道为什么 rsync 会一遍又一遍地发送文件吗?

我正在尝试使用 rsync 备份一些文件,大约半 TB。现在它处于每次运行时不断发送相同文件的状态。

例如:

rsync -av /data/source/* user@host:/data/dest
sending incremental file list
source/file1.txt
source/file2.txt

然后我验证这些文件是否已被复制……下次运行时它会做同样的事情

rsync -av /data/source/* user@host:/data/dest
sending incremental file list
source/file1.txt
source/file2.txt

知道为什么它会卡在这些文件上吗?我尝试清除整个目标目录并重新开始,但没有成功。

谢谢,

答案1

用于--itemize-changes让 rsync 输出实际发生更改的内容

影响是否跳过文件的决定的选项包括:

  • -c它决定是否跳过相同的文件,基于校验和
  • -I哪个忽略大小和时间在决定是否跳过文件时。
  • -t用于保留修改时间(也可以通过标志打开-a)。如果您想使用修改时间来决定是否根据修改时间来比较文件,则需要此选项,因此如果您不想评估具有相同修改时间的文件,则需要此选项(否则就​​像您使用了一样-I)。

尽管 rsync 可能会再次发送文件,但如果内容没有改变,它就不应该传输所有内容 - 运行时-v应该打印传输中匹配了多少数据的摘要。

为了进行检查,以下内容应该有帮助:

  • md5sum两端的文件 - 显示内容是否已更改
  • ls -l应该会显示时间戳是否已经改变。

答案2

我记得曾经出现过类似的问题,两个系统的时钟表现不太一致。我不得不用--modify-window=60它来解释“时间异常”。

相关内容