我有个问题。你曾经使用过任何工具来快速比较两个不同的 Windows 2003 服务器中大量文件(比如说数千个文件,总大小高达 15 GB)的相同文件吗?我想测试一下我们的备份工具是否运行良好。
我发现 Corz Checksum 和 Gizmo 可以为父文件夹生成一个哈希值,但它们都需要相当长的时间进行处理。我希望可以找到可以在我的生产服务器上使用的更高效的工具。
谢谢,
浪人
答案1
rsync -nacv <source> <destination>
将输出不同文件的列表。与往常一样,rsync
源和目标可以是本地或远程的。
- 该
-n
选项只进行一次试运行,并不实际传输任何文件。 - 该
-a
选项以递归方式检查您指定路径下的每个文件和目录。 - 该
-c
选项对每个文件进行校验。(默认使用时间戳和大小。)对于较新版本的 rsync,使用的校验和为 MD5;对于较旧版本,使用的校验和为 MD4。 - 该
-v
选项打印出结果。
就效率而言,每个文件都需要从磁盘完全读取,计算哈希值并传输到目的地,然后从磁盘读取目标文件并计算哈希值,最后比较两个哈希值……对于每个文件。任何软件的任何方法都是如此。
如果您希望大多数文件相同,可以通过将更多文件合并为一个哈希来改善网络传输。无论如何,网络不太可能成为瓶颈,因为只有哈希通过它。
rsync
在两端都运行多个线程,因此您的磁盘应该一直得到充分利用,除非您最终受到 CPU 限制,在这种情况下您的 CPU 将得到充分利用。