내 문제는 다음과 같습니다. 많은 (최대 60TB) 큰 파일 (보통 30-40GB)을 tar 파일로 아카이브해야합니다. 보관하기 전에 이러한 파일의 체크섬 (md5, sha1 등)을 만들고 싶습니다. 그러나 모든 파일을 두 번 읽지 않으면 (체크섬 한 번, 타르 팅 두 번) 매우 높은 아카이빙 성능을 달성하기 위해 어느 정도 필요합니다 (LTO-4는 120MB / s를 유지하고 백업 기간이 제한됨).
따라서 파일을 읽고 한쪽에 체크섬 도구를 공급하고 다른쪽에 테이프로 타르를 빌드하는 방법이 필요합니다.
tar cf - files | tee tarfile.tar | md5sum -
전체 아카이브의 체크섬 (이 샘플 쉘 코드는 이것을 수행함)을 원하지 않지만 아카이브의 각 개별 파일에 대한 체크섬은 원하지 않습니다.
GNU tar, Pax, Star 옵션을 연구했습니다. Archive :: Tar 에서 소스를 살펴 보았습니다 . 나는 이것을 달성 할 분명한 방법이 없다. 내가 필요한 것을 달성하기 위해 C 또는 비슷한 것으로 손으로 무언가를 만들어야 할 것 같습니다. Perl / Python / etc 등은 단순히 성능 측면에서 떨어지지 않으며 다양한 tar 프로그램은 필요한 "플러그인 아키텍처"를 놓칩니다. 코드 변경을 시작하기 전에 기존 솔루션을 아는 사람이 있습니까?
7z
당신이 해시를 선택하는 방식으로 인쇄 할 수 있습니다 sha1sum
및 sha256sum
이해 할 수 7zip.bugaco.com/7zip/7zip_15_09/MANUAL/cmdline/commands/...를 (그리고 sami-lehtinen.net/blog/... ) 사용해보기 : 7z h -scrcsha256 mydir/* | sed --regexp-extended 's, +[0-9]+ +, ,g' > mydir.sha256sum ; sha256sum -c mydir.sha256sum
(p7zip 버전 15.09 베타로 테스트)
tar
당신이 그것을 작성하기로 결정한다면 확실히 유용한 추가 물처럼 들린다 ;)