用于比较两个不同服务器中的大量文件的工具

用于比较两个不同服务器中的大量文件的工具

我有个问题。你曾经使用过任何工具来快速比较两个不同的 Windows 2003 服务器中大量文件(比如说数千个文件,总大小高达 15 GB)的相同文件吗?我想测试一下我们的备份工具是否运行良好。

我发现 Corz Checksum 和 Gizmo 可以为父文件夹生成一个哈希值,但它们都需要相当长的时间进行处理。我希望可以找到可以在我的生产服务器上使用的更高效的工具。

谢谢,

浪人

答案1

rsync -nacv <source> <destination>将输出不同文件的列表。与往常一样,rsync源和目标可以是本地或远程的。

  • -n选项只进行一次试运行,并不实际传输任何文件。
  • -a选项以递归方式检查您指定路径下的每个文件和目录。
  • -c选项对每个文件进行校验。(默认使用时间戳和大小。)对于较新版本的 rsync,使用的校验和为 MD5;对于较旧版本,使用的校验和为 MD4。
  • -v选项打印出结果。

就效率而言,每个文件都需要从磁盘完全读取,计算哈希值并传输到目的地,然后从磁盘读取目标文件并计算哈希值,最后比较两个哈希值……对于每个文件。任何软件的任何方法都是如此。

如果您希望大多数文件相同,可以通过将更多文件合并为一个哈希来改善网络传输。无论如何,网络不太可能成为瓶颈,因为只有哈希通过它。

rsync在两端都运行多个线程,因此您的磁盘应该一直得到充分利用,除非您最终受到 CPU 限制,在这种情况下您的 CPU 将得到充分利用。

相关内容