연결이 끊어지면 컬이나 wget을 다시 시작할 수 있나요?

연결이 끊어지면 컬이나 wget을 다시 시작할 수 있나요?

파일을 다운로드하고 싶습니다 curl. 문제는 연결이 매우 느리고 알 수 없는 수단으로 인해 약 180KB 후에 데이터 수신이 중단된다는 것입니다.

더 나은 수정 방법이 없다면 연결을 끊은 후(파일이 완전히 다운로드되지 않은 경우) 실행되는 쉘 스크립트를 작성하고 싶습니다.

그러한 스크립트는 어떤 모습이어야 합니까? 쉘 스크립트를 통해 이를 달성할 수 있습니까?

답변1

curl다음 명령을 사용하여 다시 시도 할 수 있습니다.--retry옵션:

curl --retry 10 ...

지정된 URL을 다운로드하기 위해 최대 10번까지 재시도합니다.

--retry-...다양한 관련 옵션에 대한 문서를 확인하는 것이 좋습니다 . 오류가 예상되는 경우 기본 백오프 알고리즘이 이상적이지 않을 수 있으므로 이 방법이 --retry-delay유용할 것입니다. 말한 바와 같이카츠라 사토, 시간 초과 옵션도 유용합니다( --...-timeout--max-time).

curl일시적이라고 생각되지 않는 오류가 발생하여 실패하는 경우 루프를 사용할 수 있습니다.

result=56
while [[ ${result} == 56 ]]; do
    curl -C - ...
    result=$?
done

루프 수를 제한하기 위해 카운터를 추가할 수도 있습니다.

관련 정보