rsync从一个远程到另一个

我有3台服务器。 称它们为A,B和C. B和C是远程的,只有在它们的hosts.allow中有A.

我需要做的是login到A,然后rsync通过SSH文件从B到C.我想使用rsync,因为许多文件同样出现在B和C.

我可以尝试从B – > A,然后从A – > C的rsync除了我没有足够的磁盘空间在A,所以我不得不find一些“分块”的文件,我不看到一个明显的分组方式,即使我这样做,我也不得不小心保pipe它,删除A磁盘上的文件,用下一个块重启进程。

那么,我有可能在两台服务器之间进行rsync? 我不认为我将能够让任何人改变hosts.allow对我:(

您应该能够从A-> B和ACbuild立SSH隧道,然后通过穿过该隧道直接从B-> Cbuild立rsync。

这将有点复杂,但基本上你做了以下几点:

  1. 在B上的高端口(比如说20000)上设置rsync守护进程
  2. 用ssh设置LocalForward A:20000到B:20000
  3. 使用ssh从C:20000到A:20000build立一个RemoteForward
  4. 在C上,rsync -av / path rsync:// localhost:20000 / path

请记住,所有这些stream量将进入A和encryptionnetworking,所以它可能会很慢。 可能值得一看的是,B实际上是从C防火墙,你可能能够在高端口上运行rsync服务器并直接连接。