ประมาณขนาดไฟล์บีบอัดใน tar.gz


0

ฉันมีชุดของ.tar.gzไฟล์ซึ่งเป็นไฟล์สำรองที่ซ้ำกัน (ทั้งข้อมูลสำรองเต็มหรือไฟล์เพิ่มเติม) ฉันต้องการคำนวณว่าไดเรกทอรีใดใช้พื้นที่ในการสำรองข้อมูลมากที่สุด นี่อาจเป็นตัวเลขที่แตกต่างกันในการคำนวณว่าไดเรกทอรีใดมีพื้นที่ว่างมากที่สุดในระบบไฟล์สดเพราะฉันจำเป็นต้องพิจารณาว่าไฟล์มีการเปลี่ยนแปลงบ่อยแค่ไหน (ดังนั้นจึงมีพื้นที่สำหรับการสำรองข้อมูลเพิ่มเติม) และวิธีบีบอัดไฟล์

ฉันรู้ว่าในขณะที่รูปแบบไฟล์เก็บถาวรอื่น ๆ หลายรูปแบบจัดเก็บไฟล์บีบอัดเป็นเอนทิตีที่แตกต่างกันภายในไฟล์เก็บถาวร.tar.gzไฟล์ทำไม่ได้และดังนั้นจึงเป็นไปไม่ได้ที่จะได้รับจำนวนที่แน่นอนของการจัดเก็บข้อมูล มีเครื่องมือใดในการคำนวณการประมาณการอย่างน้อยบ้างไหม?

คำตอบ:


1

หากคุณสนใจขนาดไฟล์เฉพาะหลังจากการบีบอัดให้บีบอัดไฟล์ด้วย gzip หนึ่งครั้ง นั่นควรเป็นวิธีที่ตรงไปตรงมาที่สุด


ฉันมีข้อมูลสำรองเกือบหนึ่งเทราไบต์และฉันต้องการคำนวณผลรวมจากไฟล์บีบอัดทุกไฟล์ ... ซึ่งใช้เวลาค่อนข้างนาน
liori

ทำการสำรองข้อมูลเต็มรูปแบบถ่ายโอนข้อมูลไปยังดิสก์เปล่าขนาดใหญ่ จากนั้นรัน ** gzip -r <ระดับสูงสุดของการถ่ายโอนข้อมูล dir> ** คุณสามารถแบ่งกระบวนการเป็นชิ้นเล็ก ๆ มันใช้เวลา แต่คุณทำครั้งเดียวเท่านั้น
John Siu

ฉันไม่มีพื้นที่ว่าง
liori

0

ดังนั้นฉันแฮ็ครหัส C เพื่อค้นหาค่าประมาณบางอย่าง รหัสแสดงจำนวนไบต์ที่zlibจะอ่านจากไฟล์เก็บถาวรเพื่อไปยังแต่ละไฟล์ที่ตามมา รหัสอยู่ที่นี่: https://github.com/liori/targz-sizes

ดูเหมือนว่าฉันสามารถดึงข้อมูลที่แม่นยำมากขึ้นได้ แต่ค่าเหล่านี้ไม่ควรแตกต่างจากของจริงโดยมากกว่าสองสามไบต์ต่อไฟล์และข้อผิดพลาดนั้นเฉลี่ยอยู่เหนือทุกไฟล์ดังนั้นมันควรจะดีพอสำหรับวัตถุประสงค์ที่อธิบายไว้ใน คำถาม.


tar -xzvOf /pathto/backup.tgz ./inner/pathto/compressed/item | dd > /dev/null- my dd(coreutils 5.97) พิมพ์จำนวนไบต์ทั้งหมดที่เขียนเป็น3690 bytes (3.7 kB) copied, 0.00244849 seconds, 1.5 MB/s
jimbobmcgee

@jimbobmcgee: คุณกำลังวัดขนาดของไฟล์ที่คลายการบีบอัดไม่ใช่จำนวนไบต์ที่ต้องการภายในการบีบอัดไฟล์บีบอัด
liori

อาฉันคิดถึงสิ่งที่คุณเป็นหลังจากนั้น (มันแตกต่างอย่างละเอียดกับสิ่งที่ฉันเป็นหลังจากตอนที่ฉันมาที่นี่!) tar -czvO /pathto/uncompressed/item | dd > /dev/nullฉันเดาแล้วสำหรับการประเมินคร่าวๆผกผันอาจจะใกล้พอที่: tar บางตัวอยู่เหนือศีรษะ แต่ฉันคิดว่านั่นอาจเป็นสิ่งที่คุณต้องการ ถ้าไม่ได้แทนสำหรับtar -czvO gzip -c
jimbobmcgee

... หรือ (ที่น่าอึดอัดใจเล็กน้อย) round-trip tar -xzvOf /pathto/backup.tgz ./inner/pathto/compressed/item | dd | gzip -c | dd > /dev/null...
jimbobmcgee

@ jimbobmcgee: ... ซึ่งน่าเสียดายที่ยังคงผิดเนื่องจาก (1) ไฟล์ที่คล้ายกันซึ่งวางถัดจากกันและกันในไฟล์เก็บถาวร tar จะช่วยซึ่งกันและกันในการบีบอัด (กรณีทั่วไปที่มีรหัสแหล่งที่มาเช่น), รายการไดเรกทอรีและไฟล์ว่างยังใช้ พื้นที่ในไฟล์เก็บถาวร - จำนวนตัวแปรขึ้นอยู่กับประเทศเพื่อนบ้าน นั่นเป็นเหตุผลที่ผมเขียนอรรถประโยชน์นี้ ;-)
liori
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.