İşte benim sorunum: Ben bir sürü (60 TB kadar) büyük dosyaları (genellikle her biri 30 ila 40 GB) tar dosyaları arşivlemek gerekir. Arşivlemeden önce bu dosyaların sağlama toplamlarını (md5, sha1, neyse) yapmak istiyorum; Ancak değil (tar'ing iki kez, checksumming kez) çok yüksek bir arşivleme performansı elde etmek veya daha az bir zorunluluktur iki kez her dosyayı okuma (LTO-4 120 MB / sürekli s istiyor ve yedekleme pencere sınırlıdır).
Bu yüzden bir dosyayı okumak, bir taraftaki bir sağlama toplamı aracını beslemek ve diğer taraftaki banda bir katran oluşturmak için bir yol bulmalıyım:
tar cf - files | tee tarfile.tar | md5sum -
Dışında tüm arşiv checksum istemiyorum (bu örnek kabuk kodu sadece bunu yapar) ama arşivdeki her bir dosya için bir sağlama toplamı.
GNU katranı, Pax, Yıldız seçenekleri üzerine çalıştım. Archive :: Tar'dan kaynağa baktım . Bunu başarmanın açık bir yolu yok. İhtiyacım olanı elde etmek için C veya benzeri bir şeyi elle inşa etmem gerekecek gibi görünüyor. Perl / Python / etc sadece performans açısından kesmeyecek ve çeşitli katran programları gerekli "eklenti mimarisini" kaçırıyor. Kod karmaşasına başlamadan önce bunun için mevcut herhangi bir çözüm bilen var mı?
7z
size karma seçip bir şekilde yazdırabilirsiniz sha1sum
ve sha256sum
anlayabiliyorum: 7zip.bugaco.com/7zip/7zip_15_09/MANUAL/cmdline/commands/... (ve sami-lehtinen.net/blog/... ) Deneyin: 7z h -scrcsha256 mydir/* | sed --regexp-extended 's, +[0-9]+ +, ,g' > mydir.sha256sum ; sha256sum -c mydir.sha256sum
(p7zip Sürüm 15.09 beta ile test edildi)
tar
yazmaya karar verirseniz yararlı bir ek gibi görünüyor;)