2

次のコマンドを使用してリモートホスト上にフォルダを作成するkorn88シェルスクリプトがあります。

ssh $user@$host "mkdir -p $somedir" 2>> $Log

その後、これを使用してループ内のファイルの束を転送します

scp -o keepalive=yes $somedir/$file $user@$host:$somedir

スクリプトが終了した後、最初のコマンドで接続が開いたままになるかどうか疑問に思いますか?

4

2 に答える 2

3

新しい-十分なバージョンのsshには、単一の物理接続を介して複数の仮想接続を多重化する機能があります。したがって、接続の多重化を有効にして、長時間実行されるsshコマンドをバックグラウンドで起動すると、後続の接続でその接続が再利用され、起動時間が大幅に短縮されます。接続の多重化については、マンページを参照してください。ssh_config関連するオプションはとです。ControlMasterControlPath

しかし、William Pursellが示唆しているように、rsyncそれがオプションである場合、おそらくより簡単で高速です。

于 2012-05-29T19:20:32.923 に答える
3

各コマンドは、独自の接続を開いたり閉じたりします。tcpdumpこれを確認するようなツールを使用するのは簡単です。

これは、exit()プロセスを終了するために使用されるシステムコールが、ソケットファイル記述子を含むすべての開いているファイル記述子を閉じるという事実の結果です。ソケットを閉じると、ソケットの背後にある接続が閉じます。

于 2012-05-29T19:00:00.050 に答える