移动大量大文件后验证文件传输是否成功

移动大量大文件后验证文件传输是否成功

我正在通过网络将大量文件(>100GB,几千个文件)传输到新 Mac。传输完成后,我希望能够验证所有文件是否已成功传输,并且在此过程中没有发生损坏。

这些文件来自 FreeNAS(基于 FreeBSD 的开源 NAS)服务器共享。它们正在被加载到 Mac 文件系统上。

到目前为止,我能想到的最佳解决方案是运行ls -aR共享文件,然后运行本地磁盘,然后对这两个文件进行差异处理。有更好的解决方案吗?可选的,但更好的是,有没有一种方法可以做到这一点,即对文件进行哈希处理以确保所有数据都已成功传输?

就我的计算机技能而言,我可以轻松地使用终端应用程序,因此没有必要仅推荐 GUI 工具。

答案1

一个词。同步

答案2

正如 SleighBoy 提到的,Rsync 是此类事情的标准工具。

你建议在两个系统上比较 ls 的输出差异,但这并不奏效,因为虽然它可以验证文件存在于两个位置,则无法验证数据的完整性。如果您手动执行此操作,则需要为两个系统上的每个文件生成校验和,然后验证校验和是否匹配。有工具可以为您执行此操作(radmind有一些工具可以简化这一过程),但使用 Rsync 更简单。

本文描述了一种巧妙使用 BitTorrent 来实现大致相同的目的的方法。我不推荐这种解决方案,但读起来很有趣。

答案3

如果您有两边的文件,则可以md5sum在每一端运行并比较哈希值。对一堆文件执行此操作的方法是将tar它们复制到stdout并将输出通过管道传输到md5sum

rsync和平原scp -r或者rcp -r也是你的朋友。

相关内容