如何打印/记录 rsync 计算的校验和?

Jav*_*ier 3 linux rsync checksum md5

我必须在两台 Linux 服务器之间传输数百万个大小差异很大的文件,总计近 100 TB。第一次使用 rsync 很容易做到这一点,而且非常安全,因为可以对数据进行校验和。

但是,我需要保留文件列表及其校验和,以便将来定期进行一些检查。

有没有办法告诉 rsync 打印/记录文件的校验和?如果这不可行:考虑到性能非常重要,您会推荐哪种工具/命令?

提前致谢!

Mis*_*agi 5

自rsync 3.1.0 (2013 年 9 月 28 日发布)以来,可以在日志记录中包含传输 md5 校验和:

在日志输出处理中添加了“%C”转义符,如果指定了 --checksum(当协议 30 或更高版本有效时),它将输出任何传输文件或所有文件的 MD5 校验和。

例如,日志格式%i %f B:%l md5:%C将记录每个传输,类似于

>f+++++++++ 00/64235/0664eccc-364e-11e2-af18-57a6d04fd4d5 B:16035388 md5:8ab769aa5224514a41cee0e3e2fe3aad
Run Code Online (Sandbox Code Playgroud)

请注意,这是为验证传输完整性而计算的 md5 和 - 即使对于没有标志的传输也可用--checksum。如果只有传输的一侧3.1.0或更新的一侧,此更改还允许记录校验和。例如,您可以在目标计算机上使用较新的 rsync 守护进程执行校验和日志记录,但只要使用 md5(3.0.0或较新的),就使用较旧的 rsync 客户端进行发送。