通过与原始文件比较来验证文件完整性

通过与原始文件比较来验证文件完整性

我正在将 1TB 的 FreeNAS 服务器复制到 USB 外部驱动器,我使用“cp”执行此操作,复制完成后,我想将原始文件中的文件与副本文件进行比较。

这可能吗?

答案1

您可以用来diff比较两个文件层次结构:

diff -qr /path0 /path1

Flag-r要求递归地遍历目录,而-q要求在文件不同时只打印一条语句,而不是详细的差异。当目录相同时,此命令不打印任何内容并以状态 0 退出。

如果您希望每次比较都显示一条消息,而不仅仅是那些失败的比较,请使用diff -qsr

答案2

在源驱动器上使用find,xargsmd5sum:

find . -type f | xargs md5sum > sums.md5

将该文件复制到目标计算机(如果不同),然后执行以下操作:

md5sum -c sums.md5

这样做的优点是,如果您可以在服务器上运行检查,这通常比通过网络读取(或比较)快得多。不必使文件彼此“相邻”意味着您也可以在以后(当原始文件可能不再可用时)(重新)运行检查。

答案3

cp 或 move with checksum 校验和存储在文件的 xattr 中,将在复制后用于检查完整性 https://github.com/hansij66/securecopy

相关内容