ローカルシェルを使用して2つのリモートホスト間でファイルを転送したいのですが、2つのリモートが次のように指定されている場合、rsyncは同期をサポートしていないようです:
$ rsync -vuar host1:/var/www host2:/var/www
The source and destination cannot both be remote.
同様の結果を達成するために使用できる他の回避策/コマンドは何ですか?
承認された回答:
あなたが発見したように、リモートソースとリモート宛先で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'
ご参考までに、<code> -R オプションは、host1のポート50000から(ローカルマシンを介して)host2のポート22にマップするリバースチャネルを設定します。 host1からhost2への直接接続はありません。