2010-07-22 4 views
0

안녕하세요, 사실 나는 원격 컴퓨터의 로컬 컴퓨터에서 안전한 파일 전송을 사용하여 N 개의 파일을 전송하는 데 걸리는 시간을 줄이기 위해 노력하고 있습니다. 이전에는 각 파일 전송에 대한 연결을 설정하는 scp 시스템 명령을 사용했습니다. 미리 감사드립니다. NET :: SCP는 여러 연결을 사용하여 여러 파일을 전송합니까?

+0

Net :: OpenSSH :: Parallel은 여러 전송을 동시에 처리 할 수 ​​있습니다. – salva

답변

0

이렇게하면 매번 별도의 연결이 만들어 질 것이라고 생각합니다. 그러나 -r 플래그 (Net :: SCP가 사용하는)가있는 scp는 단일 연결로 디렉토리의 모든 파일을 반복적으로 복사합니다. 몇 가지 디렉토리에 파일이 있고 그 디렉토리에있는 모든 파일을 복사하려는 경우 그 방법이 될 수 있습니다.

그렇지 않으면 rsync에 --files-from 옵션을 사용하면 하나의 연결 만 사용해야합니다. (압축을 위해서는 -z, -a는 잊지 마라).

perl을 사용하여이 작업을 수행하려는 유일한 이유는 단일 세션을 원할 경우 명령 줄 rsync를 사용하여 --files-from을 사용하면됩니다. Perl에서 파일 목록을 생성하려면 File :: Rsync가 지원합니다.

1

각 TCP 연결마다 대역폭 제한이있는 경우가 아니면 여러 개의 SCP 연결을 사용하여 다운로드 시간을 크게 줄일 수 없습니다.

쉘 스크립트에서 각 파일에 대해 별도의 scp 명령을 입력하고 스크립트를 타이밍함으로써 속도가 향상되는지 여부를 확인할 수 있습니다. 그런 다음 각 scp 행 끝에 쉘 스크립트를 &으로 다시 실행하십시오. 이렇게하면 전송 속도가 빨라 Perl에서 실제로이 작업을 수행하려면 fork 또는 Parallel::ForkManager을 확인하십시오.

관련 문제