rsync 使用 --itemize-changes 声明不同的校验和,但 md5sum 显示相同的文件

rsync 使用 --itemize-changes 声明不同的校验和,但 md5sum 显示相同的文件

我定期使用 rsync 将一些文件备份到外部硬盘驱动器。有时,我会在校验和模式下使用 rsync 检查磁盘上文件的完整性,以检测任何位损坏。

直到今天,这一切都很好。我的命令如下:

rsync -nrvci source dest

-n用于试运行、 -r用于递归、-v用于详细程度、-c用于校验和模式以及-i查看文件被更改的原因。

这次,一些文件被报告为具有不同的校验和,逐项列表显示所有问题文件的此字符串:>fc.T......

根据手册页,这告诉我文件正在传输>,它是一个文件f,校验和与目标不同c,因此时间戳将在复制时更改T。我的假设可能是错误的。

无论如何,当我跑步时md5sum source/file dest/file,它匹配。我什至已经添加--checksum-choice=md5到我的命令中以强制 rsync 使用 md5 方法,但无济于事,它仍然报告校验和不同。

rsync 发生了什么事?为什么它会看到这些文件不同,而实际上它们并非如此?

答案1

我遇到了同样的问题,在我的 macbook 上运行 rsync,从 Linux ubuntu 服务器同步文件。同步两个目录(使用rsync -vrc),它将忽略所有未更改的文件,除了一个;总是同一个。

  • -i还报告了使用情况>fc.T......(或者>fc........如果--times提供了)。
  • md5sum源文件和目标文件给出相同的结果
  • 使用另一个目标目录 --> 相同的结果
  • 重命名文件 --> 相同的结果
  • 使源文件对执行 rsync 的用户可写 --> 相同的结果
  • touch-ing 源文件 --> 相同的结果

在尝试了所有这些之后(并且非常确定这不是源文件存储的某种问题:mds5um始终给出相同的校验和),我预计这本身就是一些问题rsync

安装较新的rsync版本后(库存macos Ventura 13.2.1仍然有rsync version 2.6.9 protocol version 29;使用自制程序安装rsync version 3.2.7 protocol version 31),问题消失了。

答案2

我认为 rsync 或 Veracrypt 存在一次性问题。卸载并重新安装介质后,问题就消失了。因此,“关闭并重新打开”再次盛行。

编辑:一个多月后我又遇到了这个问题。这次我也能够通过使用 sudo 而不是作为普通用户运行 rsync 来解决这个问题。

相关内容