tar.gz 파일의 무결성을 확인하는 방법은 무엇입니까?

tar.gz 파일의 무결성을 확인하는 방법은 무엇입니까?

디렉터리의 tar.gz 버전인 17GB tar.gz 파일이 있습니다. tar 작업 후에 다음 메시지가 나타납니다.

tar: Error exit delayed from previous errors

이제 다운로드 시간이 오래 걸리기 때문에 다운로드하기 전에 파일이 건강한지 확인하고 싶습니다. 많은 시간을 들이지 않고 파일의 무결성을 보장할 수 있는 방법이 있습니까?

지금까지 찾은 모든 확인 솔루션은 완료하는 데 오랜 시간이 걸립니다.

답변1

파일이 정상 이라고 가정할 수는 없지만 tar.gzIMHO는 매우 좋은 가능성입니다.

매우 일반적인 근본 원인은 "Error exit delayed from previous errors"파일 크기가 변경되거나 처리되기 전에 사라지는 것입니다. 아카이브에 포함된 파일 형식에 따라 이는 문제가 되지 않을 수도 있습니다. 그럼에도 불구하고 이러한 이벤트가 올바르게 처리되는 한 tar생성된 아카이브를 사용할 수 있습니다.

다음에 아카이브를 생성할 때 v(verbose) 옵션을 잊어버리거나 stdout파일로 리디렉션하는 것이 좋습니다. 12개 정도의 파일이 포함된 소규모 아카이브에 유용하지만 tar출력에 원치 않는 소음이 추가되고 화면에 오류 메시지가 표시되며(있는 경우) 터미널 에뮬레이터에서 다시 스크롤되지 않습니다.

tar czvf large.tar.gz someDirectory >/tmp/large.tar.list

물론 tar.gz파일이 건강하다는 것을 100% 보장할 수는 없습니다. 이를 알 수 있는 유일한 방법은 어딘가에 추출하여 오류가 발생하지 않는지 확인하는 것입니다. 이러한 경우에도 액세스 권한 문제, 파일 이름/경로 이름이 너무 길거나 유효하지 않음, 파일 시스템 손상, 전송 손상 등과 같은 더 기괴한 문제로 인해 일부 파일이 저장되지 않았을 가능성이 있습니다.

답변2

내 경험상 tar: Error exit delayed from previous errors이는 일반적으로 tar링 프로세스 중에 생성된 gzip에 문제가 있음을 의미하며(보통 tar에 넣을 때 추가된 파일의 내용이 변경됨) 위의 오류가 발생합니다.

이는 "실패한 아카이브"를 구성할 수 있습니다(파일이 tar에서 다르거나 누락되거나 손상될 수 있음). (변경하는) 콘텐츠의 양이 많은 경우에는 rsync복사 파일을 대신 사용하는 것이 좋습니다 .

관련 정보