파일의 중단 된 scp를 재개하는 방법이 있습니까? 끊어지고 전송이 중단 될 때마다 약간의

때로는 scp를 통해 매우 큰 파일을 다운로드하고 있으며 매번 연결이 끊어지고 전송이 중단 될 때마다 약간의 기회가 있습니다.

다시 시작할 수있는 방법이 있습니까?



답변

다음 접근 방식을 시도 할 수 있습니다. scp 대신 dd 를 사용 하여 다운로드 한 부분을 건너 뛰고 나머지를 파일에 추가하십시오.

sofar=`ls -l ./destfile | awk '{print $5}'`
ssh rsys "dd if=./srcfile bs=1 skip=$sofar" >> ./destfile

가능한 최적화 : 큰 블록으로 작업하십시오. 이것을 숙제로 남겨 두자.


답변

와 함께 scp.

양쪽 끝에 모두 있으면 rsync -LvzP remoteserver:path/to/file localfile단일 파일을 전송하는 데 사용할 수 있습니다 .


답변

예, 중단 지점에서 재개 할 수있는 방법이 있지만 scp를 사용하는 것은 불가능합니다. sftp reget filename필요한 것을 수행합니다. Yarek과 Grawity는 둘 다에 +1의 유효한 솔루션을 제공했지만 중단 지점에서 다시 시작하려면 rsync를 좋아합니다. 제공된 예제 명령은 모두 원격 서버에서 로컬 워크 스테이션으로 파일을 검색한다고 가정합니다 (다운로드). 마지막 두 매개 변수는 그 순서대로 source_file 및 target_file로 간주되어야합니다. 파일 이름의 구문은 소스 또는 대상 파일이 로컬인지 원격인지에 따라 다릅니다. [text] 파일을 전송 (업로드)하는 경우 다음과 같이 제공된 예제를 다시 작성합니다.

# 로컬에서 리모트로
sofar =`ssh remote_system ls -l 인터럽트 _ 파일 | awk '{print $ 5}'`;
dd if = source_file bs = 1 skip = $ sofar | ssh remote_system "cat >> ./interrupted_file"

그리고 rsync 솔루션에을 추가 -e ssh합니다. 자세한 정보, 압축, 소유권 유지, 권한, 타임 스탬프, 재귀 디렉토리 등이 필요한지 여부를 고려해야합니다. -L 매개 변수와 관련하여 매뉴얼 페이지와 Google을 확인하십시오. 심볼릭 링크를 참조하는 대신 링크로 유지하려고 할 수 있습니다.

rsync -P -e ssh local_source_file remoteserver:path/to/interrupted_target_file


답변

(외에 다른 해결책이있다 rsync또는 dd솔루션 여기에 명시된) 놀랐 아무도 언급되지 해요 : 그것은이다 reput의 명령 sftp.


답변

scp -o ConnectTimeout 60

연결 시간 초과를 지정할 수 있습니다. 연결이 끊어지지 않을 수 있습니다.


답변

예, 양쪽 끝은 SFTP를 지원하는 경우 – 후 scp remoteuser@remotehost:/absolute/filename .실패하면 수행하여 다시 시작할 수 있습니다 sftp remoteuser@remotehostreget /absolute/filename다운로드를 재개 할 수 있습니다.