跨服务器比较文件/文件夹

跨服务器比较文件/文件夹

我们有两台 Unix 服务器,分布在两个国家。这些服务器保存着我们的软件存储库(脚本、二进制文件、文档等)。我正在寻找一种简单的方法来保持这些服务器同步,最好使用脚本。rsync但这nfs不是一种选择。

我想捕获server1和的列表server2(以及文件+文件夹),然后使用脚本对它们进行比较,然后决定要复制哪些文件。

答案1

如果有第三台机器充当中介,您可以编写脚本来提取文件(使用 SCP 或类似程序)和元数据(远程调用“stat”命令)并做出决定,然后将更“正确”的版本推送到“失败”的机器。虽然不太好,但可以完成工作。

答案2

您可以rsync手动执行该算法。库同步该库包括一个rdiffCLI 工具(文档) 只是包装了这些librsync函数,使其可以手动使用。

有效地将文件从 A 传输到 B,您可以按照以下步骤操作:

  1. 在机器 B 中创建一个“签名”文件,描述已存在的内容

  2. 在机器 A 中使用签名文件和原始源创建一个“补丁”文件,其中包含指令和数据,用于转换 B 上的文件并最终处理 C 上的文件。

  3. 回到机器 B,应用补丁,它会将用作参考的文件转换为在机器 A 上扫描的“原始”文件。

相关内容