如何print/log rsync 计算的校验和?

How can I print/log the checksum calculated by rsync?

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

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

有没有办法告诉 rsync print/log 文件的校验和? 如果这不可行:考虑到性能非常重要,您会推荐哪个 tool/command?

提前致谢!

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

Added the "%C" escape to the log-output handling, which will output the MD5 checksum of any transferred file, or all files if --checksum was specified (when protocol 30 or above is in effect).

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

的每次传输
>f+++++++++ 00/64235/0664eccc-364e-11e2-af18-57a6d04fd4d5 B:16035388 md5:8ab769aa5224514a41cee0e3e2fe3aad

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