gpt4 book ai didi

linux - 没有 ssh 的远程目录比较和合并

转载 作者:太空狗 更新时间:2023-10-29 11:32:21 27 4
gpt4 key购买 nike

我有 2 个远程服务器/机器,s1 和 s2(基于 linux 的机器)两个服务器都有 1 个非常大的目录。 (我的意思是两台机器最初的数据相同)

s1 is always stable upto date, changes are added by authorized user.
s2 people will make changes to the data here and there.

现在的要求是让s2的内容与s1不同步。

条件:

1. No replacement of s2 content with s1 because data is very huge
2. No other software allowed to install in machines
3. Only scp, sftp supported, no ssh or any other sort of access is given because it is production machine.

如果有人遇到这种要求,请向我推荐任何工具,任何方式来完成这项任务。

最佳答案

如果,你说,你有 scp,那么你也必须有 sshscp 需要 ssh 才能工作。因此,我将首先挑战您不能通过 ssh 使用 rsync 的假设。如果你有 scp 工作,那么没有理由 rsync over ssh 不工作。

rsync over ssh 是这里的正确答案。这是在两个不同服务器之间同步内容的最有效机制。但是,我想有可能有人认为他知道自己在做什么,但他真的不知道,黑掉了一台服务器,只允许 scp 服务,并阻止 ssh session 。可能错误地认为这会以某种方式提高安全性。它确实没有,但这是一个不同的话题。那么,现在……

好吧,您说您确实有可用的 sftp 访问权限。在这种情况下,下一个最佳答案是自定义 sftp 客户端。学习 perl,并使用 Net::SFTP模块编写自定义 perl 脚本,根据您的特定要求,使用 SFTP 比较两个服务器的内容,并同步它们的内容。

Net::SFTP 以一种允许编写使用它的自定义应用程序的方式公开底层 SFTP 协议(protocol)。您将使用 SFTP 协议(protocol)检查每个服务器的内容,找出不同之处,然后复制需要复制的内容,以更新它们的内容。

使用 Net::SFTP 的效率不如使用 rsync+ssh。使用 Net::SFTP,您将知道服务器上存在哪些文件,以及每个文件的大小(以字节为单位)。但是,如果两台服务器似乎都有同名文件和相同字节数,那么如果不下载每个文件并手动比较它们,您将无法真正知道它们实际上是否相同。当然,你必须这样做。这是 rsync+ssh 的关键优势,您没有 sftp 等效项。 rsync 服务器与 rsync 客户端协同工作,它们能够使用校验和验证文件内容是否相同,而无需实际将文件从一端传输到另一端其他。在这种情况下,无法避免使用 sftp 执行此操作,但这将是您所能做的最好的。

关于linux - 没有 ssh 的远程目录比较和合并,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27033098/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com