นี่คือปัญหาของฉัน: ฉันต้องเก็บถาวรเพื่อ tar ไฟล์จำนวนมาก (สูงสุด 60 TB) ของไฟล์ขนาดใหญ่ (โดยปกติ 30 ถึง 40 GB ต่อไฟล์) ฉันต้องการทำการตรวจสอบไฟล์ (md5, sha1, อะไรก็ตาม) ของไฟล์เหล่านี้ก่อนทำการเก็บถาวร อย่างไรก็ตามการไม่อ่านทุกไฟล์สองครั้ง (หนึ่งครั้งสำหรับการตรวจสอบสองครั้งสำหรับ tar'ing) มีความจำเป็นมากหรือน้อยกว่าเพื่อให้ได้ประสิทธิภาพการเก็บถาวรที่สูงมาก (LTO-4 ต้องการ 120 MB / s อย่างยั่งยืนและหน้าต่างสำรองมี จำกัด )
ดังนั้นฉันต้องการวิธีการอ่านไฟล์ให้อาหารตรวจสอบเครื่องมือในด้านหนึ่งและสร้าง tar เพื่อเทปในด้านอื่น ๆ บางสิ่งตาม:
tar cf - files | tee tarfile.tar | md5sum -
ยกเว้นว่าฉันไม่ต้องการให้เช็กซัมของไฟล์เก็บถาวรทั้งหมด (เชลล์โค้ดตัวอย่างทำแค่นี้) แต่เป็นเช็คซัมสำหรับไฟล์แต่ละไฟล์ในไฟล์เก็บถาวร
ฉันศึกษา GNU tar, Pax, Star options เราได้ตรวจสอบแหล่งที่มาจากเอกสารเก่า :: ต้า ฉันไม่เห็นวิธีที่ชัดเจนในการบรรลุเป้าหมายนี้ ดูเหมือนว่าฉันจะต้องสร้างบางสิ่งบางอย่างใน 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
ถ้าคุณตัดสินใจที่จะเขียนมัน;)