如何通过多台机器同步另一台机器的内容?

如何通过多台机器同步另一台机器的内容?

我有 4 台具有名称的 Linux 机器A B C D我想从机器上同步一些内容A机器D, 但A 没有直接连接到 D但是A 连接到 BB 连接到 CC 连接至 D
所以我想在 A 中运行一个脚本,将一些内容从 A 同步到 B,然后将 B 同步到 C,然后将 C 同步到 D。

答案1

答案2

解决方案是一个看起来吓人的 ProxyCommand,您应该将其添加到 `~/.ssh/config 文件中

我无法让它在这条消息中看起来不错,所以请从那里获取它https://hastebin.com/doqekujalu.tex

将这些行添加到计算机 A 上的 youruserhomedir/.ssh/config 文件(末尾)后,您可以使用 A+B+C 表示法来表示连接应走的路线:

rsync /some/file  B+C+D:/remote/path/on_Dhost/

答案3

您需要在机器 B 和 C 上以守护进程模式运行 rsync。在守护进程模式下,您可以指定在执行模块之前运行的命令。

修改机器B:

user@B:/etc/rsyncd.conf

pre-xfer exec = rsync [options] C

然后从 C 到 D 进行菊花链:

user@C:/etc/rsyncd.conf

pre-xfer exec = rsync [options] D

从机器 A 到 B 执行 rsync...运行 rsync 到机器 B 到机器 C...然后到 D。

顺便说一下,“post-xfer exec”选项也可用。

相关内容