bup-split - คู่มืออ้างอิง ตัวเลือก ตัวอย่างคำสั่ง


ชื่อ

bup-split - บันทึกแต่ละไฟล์เพื่อ bup ชุดสำรองข้อมูล

เรื่องย่อ

bup split [-t] [-c] [-n name] COMMON_OPTIONS

bup split -b COMMON_OPTIONS

bup split –copy COMMON_OPTIONS

bup split –noop [-t|-b] COMMON_OPTIONS

COMMON_OPTIONS

[-r host:path] [-v] [-q] [-d seconds-since-epoch] [--bench] [--max-pack-size=bytes] [-#] [--bwlimit=bytes] [--max-pack-objects=n] [--fanout=count] [--keep-boundaries] [--git-ids | filenames...]

คำอธิบาย

bup split เชื่อมต่อเนื้อหาของไฟล์ที่กำหนด (หรือหากไม่มีชื่อไฟล์ ให้อ่านจาก stdin) แยกเนื้อหาออกเป็นชิ้นขนาดประมาณ 8k โดยใช้อัลกอริทึมการตรวจสอบผลรวม และบันทึกชิ้นส่วนลงในที่เก็บ bup ชิ้นส่วนที่เก็บไว้ก่อนหน้านี้จะไม่ถูกจัดเก็บอีก

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

ตัวอย่างเช่น หากคุณใช้ bup split เพื่อสำรองข้อมูลดัมพ์ XML ของฐานข้อมูล และไฟล์ XML เปลี่ยนแปลงเล็กน้อยจากการเรียกใช้ครั้งหนึ่งไปยังครั้งต่อไป ข้อมูลเกือบทั้งหมดจะยังคงถูกแยกออก และขนาดของการสำรองข้อมูลแต่ละรายการหลังจากครั้งแรกมักจะ ค่อนข้างเล็ก

อีกเทคนิคหนึ่งคือการไพพ์เอาต์พุตของโปรแกรม tar(1) หรือ cpio(1) เพื่อ bup split เมื่อแต่ละไฟล์ใน tarball เปลี่ยนแปลงเล็กน้อยหรือถูกเพิ่มหรือลบออก bup จะยังคงประมวลผลส่วนที่เหลือของ tarball อย่างมีประสิทธิภาพ (โปรดทราบว่า bup save มักจะเป็นวิธีที่มีประสิทธิภาพมากกว่าในการทำสิ่งนี้ให้สำเร็จ)

ในการรับข้อมูลกลับ ให้ใช้ bup-join(1)

โหมด

ตัวเลือกเหล่านี้เลือกลักษณะการทำงานหลักของคำสั่ง โดยที่ -n เป็นตัวเลือกที่เป็นไปได้มากที่สุด

-n, --name=name

หลังจากสร้างชุดข้อมูลแล้ว ให้สร้างสาขาคอมไพล์ชื่อ ชื่อ เพื่อให้สามารถเข้าถึงได้โดยใช้ชื่อนั้น หากมี ชื่อ อยู่แล้ว ชุดข้อมูลใหม่จะถือว่าสืบทอดมาจากชื่อเก่า (ดังนั้น คุณสามารถสร้างชุดข้อมูลใหม่อย่างต่อเนื่องโดยใช้ชื่อเดิม และดูประวัติของชุดข้อมูลนั้นในภายหลังเพื่อดูว่ามีการเปลี่ยนแปลงอย่างไรเมื่อเวลาผ่านไป) ข้อมูลต้นฉบับจะพร้อมใช้งานเป็นไฟล์ระดับบนสุดชื่อ “data ” ใน VFS, เข้าถึงได้ผ่าน bup fuse, bup ftp เป็นต้น

-t, --tree

ส่งออกรหัสต้นไม้ git ของชุดข้อมูลผลลัพธ์

-c, --commit

ส่งออกรหัสคอมไพล์คอมไพล์ของชุดข้อมูลผลลัพธ์

-b, --blobs

ส่งออกชุดของ git blob ids ที่สอดคล้องกับชิ้นในชุดข้อมูล ไม่เข้ากันกับ -n, -t และ -c

--noop

อ่านข้อมูลและแบ่งออกเป็นบล็อกตามอัลกอริทึมการตรวจสอบการกลิ้ง "bupsplit" แต่อย่าเก็บสิ่งใดไว้ใน repo สามารถใช้ร่วมกับ -b หรือ -t เพื่อคำนวณ (แต่ไม่เก็บ) git blobs หรือ tree id สำหรับชุดข้อมูล สิ่งนี้มีประโยชน์มากสำหรับการเปรียบเทียบและตรวจสอบความถูกต้องของอัลกอริทึม bupsplit ไม่เข้ากันกับ -n และ -c

--copy

เช่น --noop แต่ยังเขียนข้อมูลไปยัง stdout สิ่งนี้มีประโยชน์สำหรับการเปรียบเทียบความเร็วในการอ่าน+บัพสปลิต+เขียนสำหรับข้อมูลจำนวนมาก ไม่เข้ากันกับ -n, -t, -c และ -b

ตัวเลือก

-r, --remote=host:path

บันทึกชุดข้อมูลสำรองไปยังเซิร์ฟเวอร์ระยะไกลที่กำหนด หากละเว้น เส้นทาง ให้ใช้เส้นทางเริ่มต้นบนเซิร์ฟเวอร์ระยะไกล (คุณยังคงต้องใส่ `:') การเชื่อมต่อกับเซิร์ฟเวอร์ระยะไกลทำด้วย SSH หากคุณต้องการระบุพอร์ต ผู้ใช้ หรือคีย์ส่วนตัวที่จะใช้สำหรับการเชื่อมต่อ SSH เราขอแนะนำให้คุณใช้ไฟล์ ~/.ssh/config แม้ว่าปลายทางจะอยู่ไกล แต่ก็ยังต้องการที่เก็บ bup ในเครื่อง

-d, --date=seconds-since-epoch

ระบุวันที่ที่เขียนไว้ในการกระทำ (วินาที ตั้งแต่ 1970-01-01)

-q, --quiet

ปิดการใช้งานข้อความความคืบหน้า

-v, --verbose

เพิ่มความฟุ่มเฟือย (สามารถใช้มากกว่าหนึ่งครั้ง)

--git-ids

stdin เป็นรายการของ git object ids แทนข้อมูลดิบ bup split จะอ่านเนื้อหาของแต่ละวัตถุ git ที่มีชื่อ (หากมีอยู่ในที่เก็บ bup) และแยกออก สิ่งนี้อาจมีประโยชน์สำหรับการแปลงที่เก็บ git ด้วยไฟล์ไบนารีขนาดใหญ่เพื่อใช้การแยกแฮชแบบ bup แทน ตัวเลือกนี้น่าจะมีประโยชน์มากที่สุดเมื่อรวมกับ --keep-boundaries

--keep-boundaries

หากระบุชื่อไฟล์หลายชื่อในบรรทัดคำสั่ง โดยปกติแล้วชื่อไฟล์เหล่านั้นจะถูกต่อเข้าด้วยกันราวกับว่าเนื้อหาทั้งหมดมาจากไฟล์เดียว นั่นคือชุดของ blobs/tree ที่ผลิตจะเหมือนกับสิ่งที่ควรจะเป็นหากมีไฟล์อินพุตไฟล์เดียว อย่างไรก็ตาม หากคุณใช้ --keep-boundaries แต่ละไฟล์จะถูกแยกออกจากกัน คุณยังคงได้รับต้นไม้เดี่ยวหรือการกระทำหรือชุดของ blobs แต่แต่ละ blob มาจากไฟล์เดียวเท่านั้น จุดสิ้นสุดของไฟล์อินพุตไฟล์ใดไฟล์หนึ่งจะลงท้ายด้วยหยดเสมอ

--bench

พิมพ์การกำหนดเวลาเกณฑ์มาตรฐานไปยัง stderr

--max-pack-size=bytes

อย่าสร้าง git packfiles ที่มีขนาดใหญ่กว่าจำนวนไบต์ที่กำหนด ค่าเริ่มต้นคือ 1 พันล้านไบต์ มักจะไม่มีเหตุผลที่จะเปลี่ยนแปลงสิ่งนี้

--max-pack-objects=numobjs

อย่าสร้าง git packfiles ด้วยวัตถุมากกว่าจำนวนที่กำหนด ค่าเริ่มต้นคือ 200,000 วัตถุ มักจะไม่มีเหตุผลที่จะเปลี่ยนแปลงสิ่งนี้

--fanout=numobjs

เมื่อแยกไฟล์ขนาดใหญ่มาก ให้พยายามรักษาจำนวนองค์ประกอบในแผนผังให้เท่ากับ numobjs

--bwlimit=bytes/sec

อย่าส่งมากกว่า ไบต์/วินาที ไบต์ต่อวินาทีไปยังเซิร์ฟเวอร์ นี่เป็นสิ่งที่ดีสำหรับการสำรองข้อมูลของคุณไม่ดูดแบนด์วิธเครือข่ายทั้งหมดของคุณ ใช้คำต่อท้าย เช่น k, M หรือ G เพื่อระบุผลคูณของ 1024, 1024*1024, 1024*1024*1024 ตามลำดับ

-#, --compress=#

ตั้งระดับการบีบอัดเป็น # (ค่าตั้งแต่ 0-9 โดยที่ 9 คือค่าสูงสุด และ 0 คือไม่มีการบีบอัด) ค่าเริ่มต้นคือ 1 (การบีบอัดที่รวดเร็วและหลวม)

ตัวอย่าง

$ tar -cf - /etc | bup split -r myserver: -n mybackup-tar
tar: Removing leading /' from member names
Indexing objects: 100% (196/196), done.

$ bup join -r myserver: mybackup-tar | tar -tf - | wc -l
1961

ดูสิ่งนี้ด้วย

bup-join(1), bup-index(1), bup-save(1), bup-on(1), ssh_config(5)

บัพ

ส่วนหนึ่งของชุด bup(1)

ผู้เขียน

เอเวอรี่ เพ็ญนฤนาท apenwarr@gmail.com.