วิธีที่เร็วที่สุดและเชื่อถือได้มากที่สุดในการแบ่งไฟล์ไบนารี 50GB เป็นชิ้นขนาด 5GB หรือน้อยกว่านั้นจะรวมกันอีกครั้งในภายหลังคืออะไร


26

เซิร์ฟเวอร์ของเราใช้งาน Ubuntu Linux และไฟล์ไบนารีคือการถ่ายโอนข้อมูล BSON ของชุด MongoDB ขนาดใหญ่ เครื่องมือมีความน่าเชื่อถือแค่splitไหน? มีวิธีที่เร็วกว่าหรือดีกว่าในการทำเช่นนี้?

คำตอบ:


26

หากต้องการแยกให้แบ่ง -b

catในการเข้าร่วมเพียง

AFAIK พวกเขาเชื่อถือได้อย่างสมบูรณ์และฉันสงสัยว่ามีบางสิ่งที่มีประสิทธิภาพมากกว่า


21

แยกมีความน่าเชื่อถือมาก เราใช้สำหรับการย้ายไฟล์บันทึกขนาดใหญ่และใช้งานได้ดีมากถึงสอง GB (ไม่ใช่ 50 gb ต่อไป)

ฉันเชื่อว่าคุณสามารถลองใช้ตัวแยกตามความต้องการของคุณและแจ้งให้เราทราบ

แบ่งออกเป็นไฟล์ขนาด 5GB

split --bytes = 5G inputfile

มันจะแบ่งออกเป็นหลายไฟล์ 5GB และตั้งชื่อเป็น xaa, xab, xac, .... และอื่น ๆ

concatenate

cat x *> outfile

โดยนี้คุณสามารถเชื่อมต่อเป็นไฟล์เดียวในส่วนอื่น ๆ


1
บน OS XI ต้องใช้ split -b50m เพื่อสร้างไฟล์ 50 เมกะไบต์ หมายเหตุไม่เท่ากับเครื่องหมายหมายเหตุตัวพิมพ์เล็ก
funroll

3

หากคุณติดตั้ง rar แล้วมันทำงานได้ดีมากสำหรับฉัน:

เพื่อแยก

rar a -m0 -v5000m newfilename giantfile.foo
  • a = เพิ่มไฟล์เพื่อเก็บถาวร
  • m0 = ไม่มีการบีบอัด
  • v5000m = แยกออกเป็นชิ้น ๆ จำนวน 5,000 เมกะไบต์

เพื่อประกอบใหม่:

unrar x newfilename.*
  • x = สารสกัด

ประโยชน์ที่ได้รับ:

  • CRC ในเนื้อหาของการแยกเก็บถาวร
  • สั่งแยกไฟล์แยกเก็บไว้โดยอัตโนมัติ
  • สามารถรวมหลายไฟล์และ dirs

3

splitและcatมีความน่าเชื่อถือโดยสิ้นเชิง คุณสามารถบีบอัดอินไลน์เพิ่มเติมได้เช่นนี้ สมมติว่าไฟล์อินพุตของคุณคือdump.bson:

gzip < dump.bson | split -b 32M - dump.bson.gz.

จากนั้นสร้างใหม่ด้วยสิ่งนี้:

cat dump.bson.gz.* | gunzip > dump.bson

เคล็ดลับนี้ทำงานได้เป็นอย่างดีด้วยxz(dec)ในสถานที่ของg(un)zip

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.