2つのリモコン間でファイルを同期する方法は?

2つのリモコン間でファイルを同期する方法は?

ローカルシェルを使用して2つのリモートホスト間でファイルを転送したいのですが、次のように2つのリモートホストを指定すると、rsyncは同期をサポートしていないようです。

$ rsync -vuar host1:/var/www host2:/var/www
The source and destination cannot both be remote.

同様の結果を得るために使用できる他の回避策/コマンドは何ですか?

ベストアンサー1

ご存知のように、リモートソースとリモートターゲットにはrsyncを使用できません。 2つのサーバーが互いに直接通信できないと仮定すると、SSHを使用してローカルシステムを介してトンネルを確立できます。

変える

rsync -vuar host1:/var/www host2:/var/www

あなたはこれを使うことができます

ssh -R localhost:50000:host2:22 host1 'rsync -e "ssh -p 50000" -vuar /var/www localhost:/var/www'

の最初のインスタンスは、のターゲットに対応するのソース/var/wwwに適用されます。host1localhost:/var/wwwhost2

気になる場合は、この-Rオプションはホスト1のポート50000でバックチャネルを設定します。このバックチャネルは(ローカルシステムを介して)ホスト2のポート22にマップされます。ホスト1からホスト2への直接接続はありません。

おすすめ記事