GNU/Linux >> Linux の 問題 >  >> Linux

中間ホスト経由でファイルを再同期する

この質問は基本的に、scp の場合はこちら、rsync の場合はこちらなど、他の場所で回答されています。後者には私の回答が含まれていますが、回答が受け入れられなかったので、ここで繰り返します。

ご指摘のとおり、 rsync を使用できます の -e | --rsh オプションですが、もう少し複雑になります:

rsync -azv -e 'ssh -o "ProxyCommand ssh -A PROXYHOST -W %h:%p"' foo/ dest:./foo/

または、バージョンが ssh の場合 十分に新しい (OpenSSH>=v7.3) ため、-J を使用できます (ProxyJump ) オプション

rsync -azv -e 'ssh -A -J [email protected]:PORT' foo/ dest:./foo/

-A を使用していることに注意してください (エージェント転送) ただし、キーを使用しない場合はパスワード認証でも動作するはずです。もちろん、 proxy を置き換えることができます B で と dest C で あなたの例では。

たまたま十分な新しい ssh がない場合 バージョン (>=5.3、IIRC)、netcat を使用できます -W の代わりに ssh へのオプション :

rsync -azv -e 'ssh -o "ProxyCommand ssh -A PROXYHOST nc %h %p"' foo/ dest:./foo/

最後に、すでにコメントに記載されているように、 ProxyCommand を配置できます あなたの $HOME/.ssh/config に このような複雑なコマンド ラインを使用する必要はありません。具体的には、次のようなものを追加してください:

Host C
  ProxyCommand ssh -A PROXYHOST -p 22 -W %h:%p

または、 ProxyJump を使用して OpenSSH>=v 7.3 の場合:

Host C
  ProxyJump PROXYHOST

その後、次のことができるはずです:

rsync -azv foo/ C:./foo/

Linux
  1. Ssh – Sshを介してファイルをリモートで編集する方法は?

  2. rsyncを使用してファイルをバックアップします

  3. rsyncを使用してファイルを同期する

  1. cp -r 隠しファイルなし

  2. Linuxはロボコピーに相当しますか?

  3. rsync ディレクトリ内の N 個の最新ファイル

  1. Rsyncを選択的に消音する方法は?

  2. 中間マシンを介してScpする方法は??

  3. SSH 経由でデバイスを使用しますか?