rsyncは毎回複数のファイルに対して新しいSSH接続を確立しますか、それとも同じ接続を使用しますか?

rsyncは毎回複数のファイルに対して新しいSSH接続を確立しますか、それとも同じ接続を使用しますか?

次のようにrsyncを使用しているとします。

rsync user@server:/path/to/file1 user@server:/path/to/file2 /local/directory

リモートサーバーのfile1とfile2をローカルディレクトリにコピーします。この場合、rsyncは2つのファイルをコピーするために2つの別々のSSH接続(各ファイルごとに1つ)を設定しますか、それともrsyncが1つのSSH接続を確立し、必要に応じて開きますか?

答え1

これを直接テストすると、使用している特定のバージョンのrsyncに有効な回答が得られます。

rsync -e $'sh -x -c \'exec ssh "$@"\' _' \
  user@server:/path/to/file1 user@server:/path/to/file2 /local/directory

$''上記の構文はkshまたはbashで利用可能な拡張ですが、適用されません/bin/sh。)

sh -x実行中の各コマンドについて、1行が記録されていることがわかりますssh。コマンドが1つしかない場合、ssh特定のバージョンのrsyncは接続を再利用できます。 (これはバージョン3.1.2を使用した私の自己テストの場合のようです。)

関連情報