rsync는 매번 여러 파일에 대해 새로운 SSH 연결을 설정합니까, 아니면 동일한 연결을 사용합니까?

rsync는 매번 여러 파일에 대해 새로운 SSH 연결을 설정합니까, 아니면 동일한 연결을 사용합니까?

다음과 같이 rsync를 사용한다고 가정해 보겠습니다.

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

원격 서버의 file1 및 file2를 로컬 디렉터리로 복사합니다. 이 경우 rsync는 두 개의 파일을 복사하기 위해 두 개의 별도 SSH 연결(각 파일당 하나씩)을 설정합니까, 아니면 rsync가 하나의 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실행 중인 각 명령에 대해 한 줄이 기록된 것을 볼 수 있습니다 ssh. 명령이 하나만 있는 경우 ssh특정 버전의 rsync가 연결을 재사용할 수 있습니다. (이것은 버전 3.1.2를 사용한 내 자체 테스트의 경우인 것 같습니다.)

관련 정보