![rsync --remove-source-files 有多安全?](https://linux22.com/image/570512/rsync%20--remove-source-files%20%E6%9C%89%E5%A4%9A%E5%AE%89%E5%85%A8%EF%BC%9F.png)
我想使用 rsync 移动一些文件,但在删除源文件之前,确保文件在目标位置完好无损至关重要。问题是,我找不到任何信息告诉我 rsync 如何确定文件已正确传输:我需要对其进行正确的校验和。有人知道 rsync 是如何做到的吗?
答案1
您需要传递--checksum
以确保不会跳过源和目标上具有相同大小和时间的文件。然后,按照维基百科:
接收方将文件副本分割成固定大小且不重叠的块,并为每个块计算两个校验和:MD4 哈希值和较弱的“滚动校验和”。(与 rsync 版本 3.0.0 一起发布的协议版本 30 现在使用 MD5 哈希值而不是 MD4。[14])它将这些校验和发送给发送方。
答案2
手册页中有关部分--checksum
说,rsync 始终验证接收文件的校验和以将其视为完整(即使--checksum
未使用):
请注意,rsync 始终通过检查文件传输时生成的整个文件校验和来验证每个传输的文件是否在接收端正确重建,但传输后的自动验证与此选项在传输前的“此文件是否需要更新?”检查无关。