远程到远程文件同步,无需远程服务器之间的直接网络连接

远程到远程文件同步,无需远程服务器之间的直接网络连接

我想设置一个任务来同步两个远程服务器的文件。

过去我做过以下事情:

  1. SSH 到目的地
  2. SU 到拥有源公钥的用户
  3. 通过 SSH 使用 Rsync 将文件拉取到源

但是现在,源服务器已移至目标无权访问的 VPN,因此不再存在直接的“视线”,因此我现在采用以下方法:

  1. 从源到本地的 Rsync
  2. 从本地到目的地的 Rsync

然而,这样做的缺点是,可能会使用许多不同的本地机器来执行文件同步任务,因此创建新的本地副本的开销,甚至需要在本地机器上存储本地副本都是不可取的。

是否存在基于 Linux / OSX 的命令行工具可以执行上述操作而不需要本地副本?

答案1

如果源和目标都无法连接到另一端,则除了按照所述将文件复制到本地机器之外,没有其他方法可以复制文件。

但是,如果您在复制大量数据时遇到困难,可以执行以下操作:

  1. 使用几个命令复制文件和文件夹rsync
  2. 将一个文件/文件夹复制到本地计算机后,立即将其复制到另一台远程计算机并将其删除。

这样,您可以减少本地存储文件所需的硬盘容量。此外,您还可以将这些内容写入脚本,并sleep在恢复之前给本地机器一些时间来稳定下来。您可以使用 SSH 密钥来自动执行此操作,以避免提示输入密码。当然,这假设您不需要尽快将数据复制到另一端。

答案2

虽然不是真正的命令行工具,但您有能力设置 NFS 挂载吗?挂载源和目标文件系统应该可以满足您的需求。

相关内容