名前のある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」オプションも使用できます。