古いサーバーからデータを移動する必要がある場合があります。ホスト1新しいサーバーへ:ホスト2。 問題はホスト1がホスト2を見ることができないことです、別のサーバーを使用することもできます(ローカルホスト) を使用して、host1 と host2 の両方に SSH で接続します。
次のように動作すると想像してください。ホスト1 -> ローカルホスト -> ホスト2
rsyncを使用してhost1とhost2の間でファイルをコピーするにはどうすればよいですか?このコマンドをlocalhostサーバーで試しましたが、ソースと宛先の両方をリモートにすることはできません。
rsync -avz host1:/workspace host2:/rasv1/old_code-de
答え1
答え2
トンネリングを使用して、ssh を使用して rsync をリダイレクトできます。
user@host1 としてログインし、"localhost" (混乱を避けるために "your_host" と呼びます) 経由で host2 へのトンネルを作成します。
ssh <your_host_user>@<your_host> -L 8080:<host2_ip>:22
そのターミナルを開いたまま、host1 の別のターミナルで次のように入力します。
rsync -avzh -e "ssh -p 8080" <source_file> <host2_user>@127.0.0.1:/<target_folder>
もちろん、8080 以外のポートを使用することもできます。ssh を使用しない他の方法を使用することは可能だと思いますが、テストしていません。
答え3
私の知る限り、rsync はリモート サーバーからリモート サーバーへのコピーをサポートしていません。
単純なファイルコピーだけが必要な場合は、@eblockが指摘したようにオプションscp
を使用するだけで済みます。-3
rsyncが必要な場合は、両方のサーバーをローカルフォルダーにマウントできます。sshfs
sshfs user@server1:/path/on/server1 /local/path1
sshfs user@server2:/path/on/server2 /local/path2
そして、ローカル フォルダー間でファイルをコピーします。
rsync -av /local/path1 /local/path2
アンマウントするには:
fusermount -u /local/path1
fusermount -u /local/path2
の速度/パフォーマンスについてはよくわかりませんがsshfs
。