답변:
다운로드 한 파일의 무결성을 확인하는 가장 일반적인 방법은 MD5 체크섬을 사용하는 것입니다. 이것은 다운로드 한 사이트가 실제로 게시 된 MD5 체크섬 파일의 파일이라고 가정합니다. 다운로드 한 파일의 고유 한 체크섬을 만들어 게시 된 체크섬과 비교하여 MD5 체크섬을 확인할 수 있습니다. 파일이 동일하면 다운로드 한 파일이 완료되었으며 변경되지 않은 것입니다.
다운로드하는 파일이 변경 될 것으로 예상하지 않으면 체크섬을 미리 계산하여이를 스크립트에 하드 코딩 할 수 있지만 파일이 업데이트되면 확인에 실패합니다.
파일 실행의 MD5 체크섬을 만들려면 md5sum myFile
. wget의 경우, 특히 다운로드중인 파일이 큰 경우이 명령이 유용 할 수 있습니다.
wget -O - http://example.com/myFile | tee myFile | md5sum > MD5SUM
.
다운로드하는 동안 "myFile"체크섬을 생성하여 파일 MD5SUM에 저장하면 시간을 절약 할 수 있습니다.
연결이 끊어진 경우 wget의 종료 코드를 확인하는 것이 가장 좋은 방법이라고 생각합니다. 오류없이 다운로드에 성공하면 wget이 반환 0
됩니다. 다른 것은 무언가 잘못되었음을 나타냅니다. 의 "종료 상태"섹션을보십시오 man wget
.
파일을 다운로드하는 데 사용 된 명령의 리턴 코드는 명령이 성공적으로 실행되었는지 여부를 알려줍니다. 일반적으로 리턴 코드 0은 성공을 나타내고 0이 아닌 숫자는 오류를 나타냅니다. $?
변수를 통해 리턴 코드에 액세스 할 수 있습니다 .
사용하는 기본 예 wget
는 다음과 같습니다.
#!/bin/bash
wget foo.tgz &> /dev/null
if [[ "$?" != 0 ]]; then
echo "Error downloading file"
else
echo "Success"
fi
&> /dev/null
모든 wget의 출력을 리디렉션 /dev/null
하여 스크립팅에 이상적이지만 디버깅 wget
오류를보다 어렵게 만듭니다.
wget -q ... || { handle ; error ; }
man
답변을 읽는 동안에 만 찾았 으며 두 가지 대답에 이미 두 가지 언급이 있었으므로 두 가지 의견을 제시했습니다. 당신에게도 좋은 연락.
wget
다운로드가 중단 된 경우에도 다운로드가 완료된 것으로 생각할 수 있다는 것입니다. 닫힌 TCP 연결 대 닫힌 TCP 연결에 대한 정보를 프록시로 설정합니다. HTTP는 기본적으로 닫힌 TCP를 종료 표시로 사용하므로 HTTP에 문제가 있습니다. 그래서 대량 다운로드를 실행했을 때 헤더의 파일 크기가 다운로드 한 파일 크기와 일치하는지 확인했습니다. wget
이러한 일관성 검사를 수행하는지 또는이 문제에 대한 http 사양이 무엇인지 확실 하지 않습니다.