0

スクリプトで ssh セッションを開き、他のコマンドをローカルで実行してから、既に開いている ssh セッションにコマンドを送信したいと考えています。

具体的には、最初にバックグラウンドで ssh セッションを開き、続行してデータベースを読み取り専用モードにし、開いている ssh セッションでコマンドを実行してから、データベースを書き込みモードに戻すシェル スクリプトを Linux で実行したいと考えています。これを行っているときは毎秒カウントされ、実際にsshセッションを開くのに約80%の時間がかかるため、データベースが読み取り専用のときにsshセッションを開いてコマンドを送信したくないのはそのためですモード。

へのアクセス権がありませんexpect

4

1 に答える 1

1

接続の多重化があなたの答えだと思います。

sshこれが機能する方法は、たとえば同じマシンの別のウィンドウ、または現在のログイン シェルのバックグラウンド セッションで同じサーバーへの既存の接続がある場合、同じサーバーsshへの後続の接続で最初の接続を再利用できるため、大幅に高速化されます。あなたが達成したいのと同じように、起動時間を上げてください。

これをに追加して~/.ssh/config、サーバーへの接続時に有効にします。

Host yourserver
ControlMaster auto
ControlPath ~/.ssh/master-%r@%h:%p

yourserver私はこれをどこでも使用するので、代わりに*.

これを試してください:sshあるウィンドウでサーバーにログインした後、別のウィンドウで同じサーバーに ssh します。この 2 番目の接続は、既に存在する接続を再利用するため、認証して接続を確立する必要がないため、高速化する必要があります。

于 2013-10-18T06:06:05.150 に答える