파일의 중단 된 scp를 재개하는 방법이 있습니까?


12

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

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

답변:


9

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

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

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


나는 이것을 아직 테스트하지는 않았지만 솔루션에 대한 훌륭한 접근 방식과 같은 dd 사운드를 사용하기 때문에 잠정적으로 대답을 받아들입니다.
GJ.

방금 테스트했고 완벽하게 작동합니다. 감사합니다!
Kossak

@Kossak, 잘 들었습니다!
yrk

dd작은 블록 크기의 경우 속도가 느릴 수 있습니다 (여기서는 350kB / s). 다행히도 scp전송은 1024 바이트 블록으로 제공됩니다. 파일의 경우 (또는 가장 가까운 1024 바이트 블록으로 잘라서) 다음과 같이 속도를 높일 수 있습니다 ssh rsys "dd if=./srcfile bs=1024 skip=$sofar" >> ./destfile. (그런 $sofar다음 건너 뛰려면 1024 바이트 블록의 수 여야합니다!)
tanius

2
rsys두 번째 줄에서에 대한 특별한 주장이 아닌 호스트 이름의 예라는 것을 깨닫는 데 시간이 걸렸습니다 ssh. user@host혼동을 피하기 위해 교체하는 것이 좋습니다 .
Ahmed Essam

7

와 함께 scp.

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


이로 인해 중단 된 거대한 파일을 다운로드하는 시간이 절약되었습니다. 감사합니다.
phette23

3

예, 중단 지점에서 재개 할 수있는 방법이 있지만 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


1

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


0
scp -o ConnectTimeout 60

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


0

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

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.