web-dev-qa-db-ja.com

rsyncに2つのリモートを使用できないのはなぜですか?

ソースと宛先の両方がリモートの場合、rsyncは次のように文句を言います。

The source and destination cannot both be remote. rsync error: syntax or usage error (code 1) at main.c(1156) [Receiver=3.0.7]

Rsyncにこれを実行させるための克服できない技術的な障害はありますか?それとも、まだ実装されていない場合ですか? 2つのリモート間の転送を仲介し、ハッシュとデータの両方を保持するローカルバッファーをメモリに作成するのは比較的簡単なようです。

[〜#〜]編集[〜#〜]

人々はいくつかの接線的な提案をしているので、私は 別の質問 を投稿して、私の特定のユースケースの詳細を示しました。これらは実際には2つに分かれており、rsyncのこれらの特定の詳細を知っておく価値があると思います

34
goncalopp

リモートマシンに接続してみて、そこから転送を開始してください。 sshキーを使用している場合は、エージェントパスを使用して認証を管理できます。

ssh -A remotehostA rsync /remote/file/on/Host/a remoteHostB:/destination/

このコマンドは、remoteHostAにログオンし、そこからrsyncを実行します。

8
Kaplaa
scp -3r <remote src> <remote dest>

これには問題ありません。

5
Karma Fusebox

sshfsを使用してリモートファイルシステムの1つ(または両方)をマウントすることで、これを回避できます。次に、rsyncはそれをローカルであるかのように扱います。

残念ながら、これにより、ファイルシステムがsshfsでマウントされているマシンで多くの帯域幅が使用されるので、3番目のマシンとの間の帯域幅が広いマシンでのみ実行することをお勧めします。

もちろん、理想的なソリューションは、マシンが互いに直接通信することです。 goodとは思えない理由。

1
Michael Hampton