重複の可能性:
設定された SSH チャネルの使用
SSHプロキシチェーンを介してアクセスできるリモートサーバーがあります。結果のチャンネルは十分に広く高速ですが、設定に数秒かかります。
rsync
私はこのサーバーを定期的に実行して、比較的大きなファイルツリーへの小さな変更を同期させたいと思います。
単にこれを行うと、接続をrsync -r source_dir remote_host:target_dir
作成するのにほとんど時間がかかります。これと比較して、このホストへの対話型接続を確立するにはほぼ同じ時間がかかります。
rsync
接続遅延を避けるために、複数の呼び出しでSSH接続を再利用する方法はありますか?
問題は私が望んでいないということです。続けてファイルをリモートホストにコピーします。コピー中にファイルツリーを一貫して保持する必要があるため、rsyncイベントを直接トリガーしたいと思います。
git
たとえば、継続的な再接続遅延を回避し、リモートホストでリッスンポートを開く必要がない限り、他のものを使用することができます。
答え1
はい、オプションを参照ControlMaster
してくださいControlPath
。
以下を使用して基本接続を開始できます。
mkdir ~/.ssh/ctl
ssh -nNf -o ControlMaster=yes -o ControlPath="$HOME/.ssh/ctl/%L-%r@%h:%p" user@host
次に rsync を使用します。
rsync -e "ssh -o 'ControlPath=$HOME/.ssh/ctl/%L-%r@%h:%p'" ...
それから
ssh -O exit -o ControlPath="$HOME/.ssh/ctl/%L-%r@%h:%p" user@host
基本接続を終了します。
(しかし、一部のUbuntuバージョンには迷惑な問題があります。特徴/etc/motd
ログインするたびに(非対話型SSHセッションを含む)再構築されるため、更新が有効になっていることを確認する操作が含まれている場合は時間がかかることがあります。 IIRC、pam_motd
pam構成から削除して無効にすることができます)