複数のコンピュータにまたがって異なるコンピュータのコンテンツを同期する方法は?

複数のコンピュータにまたがって異なるコンピュータのコンテンツを同期する方法は?

名前のあるLinuxマシンが4台あります。ABCD端末のアイテムを同期したいです。機械D、しかしAはDに直接接続されていません。しかし、AがBに接続そしてBはCに接続されていますそしてCがDに接続
だから、AからBへ、BからCへ、CからDにいくつかのコンテンツを同期させるスクリプトをAで実行したいと思います。

答え1

ユーザーはSSHジャンプホストを使用してAからDへの接続を確立できます。https://en.wikibooks.org/wiki/OpenSSH/Cookbook/Proxies_and_Jump_Hosts#Jump_Hosts_--_Passing_Through_a_Gateway_or_Two

答え2

解決策は `~/.ssh/config ファイルに追加しなければならない恐ろしく見える ProxyCommand です。

このメッセージでは見事に表示できませんので、そこからインポートしてください。https://hastebin.com/doqekujalu.tex

マシンA(最後)のuserhomedir / .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を実行し、マシンBからマシンCにrsyncを実行し、Dでrsyncを実行します。

ところで、「post-xfer exec」オプションも使用できます。

関連情報