我在两个不同的地方有两台 Windows 服务器 (2016),两台服务器都有大约 8TB 的数据。它们应该具有相同的文件和文件结构,但它们之间可能存在差异。我想识别不匹配的文件或存在于一台服务器上但不存在于另一台服务器上的文件。
我的理论是,这应该可以通过 Powershell 的一些循环来实现获取文件哈希,我在一台服务器上运行它,将数据导出到一个文件,然后将该文件移动到第二台服务器并以某种方式进行比较 - 但不幸的是,我不是 Powershell 专家,无法自己做这件事。
如果有人知道的话,也可能有一个实用程序可以做到这一点 - 主要症结在于我不能使用简单比较两个目录的程序,因为这两个服务器根本没有连接到同一个网络(或互联网)。
答案1
我建议你使用拉什。它很小巧,使用简单,非常适合您的场景。
它会生成一个文本文件,其中包含目标目录(包括子目录)中的文件列表及其哈希值。然后,您可以比较这两个文本文件(例如使用 windiff)以识别任何差异。
要使用的命令行看起来像这样:
cd /d c:\directory\to\be\hashed
rhash --sha512 -r -o e:\output.txt .
(您希望使散列操作相对于当前目录,以便输出文件包含相对路径而不是绝对路径。绝对路径会使比较两个输出文件变得困难。)
答案2
我只需在两台服务器之间创建 DFS 复制即可。这将确保每台服务器提供相同的文件集,并且允许您设置同步计划,以防站点带宽不足。
请阅读更多内容;DFS 复制概述