2013-11-01 2 views
11

저는 리눅스에서 curl으로 일하고 있습니다. FTP 서버 (-r 옵션 사용)에서 파일의 일부를 다운로드하고 있지만 연결이 좋지 않아 항상 방해합니다. 다시 연결되면 다운로드를 다시 시작하는 스크립트를 작성하고 싶습니다.말아서 자동으로 중단 된 다운로드를 다시 시작 하시겠습니까?

나는이 명령을 사용했지만, 제대로 동작하지 않습니다 :

until curl -r 666-9999 -C - --retry 999 -o "path/to/file" "ftp:/path/to/remote/file"; do :; done 

답변

8

wget과이 사용 사례를 위해 특별히 만들어졌습니다. 맨 페이지에서 :

Wget has been designed for robustness over slow or unstable network connections; 
if a download fails due to a network problem, it will keep retrying until the 
whole file has been retrieved. If the server supports regetting, it will 
instruct the server to continue the download from where it left off. 

거의 모든 Linux 배포판에서 wget을 사용할 수 있습니다.이 버전은 이미 사용자 시스템에 이미 설치되어있을 수 있습니다. wget을 사용하여 파일을 다운로드하면 파일이 완전히 전송 될 때까지 네트워크 연결이 다시 설정됩니다.

+0

wget은 파일의 부분 다운로드 (예 : curl의 -r 옵션)를 지원합니까? –

+2

맨 페이지에 따르면 파일의 일부만 다운로드 할 수 있지만'-c' 플래그를 사용하면 계속 다운로드 할 수 있습니다. –

+0

내가 아는 한, Wayne이 말했듯이 부분적으로 다운로드 한 파일을 다시 시작하는 것만 지원합니다. 왜 이걸 필요할까요? wget은 전체 파일을 다운로드하고 (아직 다운로드하지 않은 부분 만) 처리합니다. – sjaensch

1
curl -L -O your_url 

에서 가져옵니다 파일.

이제 연결이 중단되었다고 가정 해 보겠습니다. 이것은 마지막 바이트에서 다운로드 계속

curl -L -O -C - your_url 

맨 페이지에서

다운로드 :

사용 "-C -"자동으로 위치를 알아 컬에게/전송을 다시 시작하는 방법 . 그런 다음 주어진 출력/입력 파일을 사용하여이를 파악합니다.

관련 문제