远程到远程文件同步,远程服务器之间没有直接networking连接

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

历史上我执行以下操作:

  1. SSH到目的地
  2. SU到在Source上有公钥的用户
  3. 通过SSH的Rsync将文件拉到源文件

然而,现在源服务器已经转移到目的地无法访问的VPN,所以不再有直接的“视线”,所以我现在采取以下方法:

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

然而,这有一个缺点,即许多不同的本地机器可能被用于文件同步任务,所以创build一个新的本地副本的开销甚至需要在本地机器上存储一个本地副本是不可取的。

有没有一个基于Linux / OSX的命令行工具,可以执行上述,而无需本地复制?

如果源和目的地都不能连接到另一端,则除了将文件复制到本地机器外,没有其他方法可以复制文件。

但是,如果遇到复制大量数据的麻烦,则可以执行以下操作:

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

这样可以降低本地存储文件所需的高清容量。 另外,你也可以在脚本中写入这些内容,然后使用sleep来让本地机器恢复之前的一段时间。 您可以使用SSH密钥来自动执行此操作,以避免提示input密码。 当然,这假定你不需要将数据ASAP复制到另一端。

不完全是一个命令行工具,但你有能力设置NFS挂载? 安装源文件系统和目标文件系统应该能够满足你的需要。