ล้างสแนปชอตของ Snapper ทั้งหมด


17

OpenSUSE (ในบรรดาดิสทริบิวชั่นอื่น ๆ ) ใช้ปลากะพงเพื่อถ่ายรูปสแนปชอตของพาร์ติชั่น btrfs บางคนคิดว่าช่วงเวลาสแน็ปช็อตเริ่มต้นใช้พื้นที่มากเกินไปเร็วเกินไป แต่ไม่ว่าคุณจะเชื่อหรือไม่ก็ตามมีหลายครั้งที่คุณต้องการล้างพื้นที่บนระบบไฟล์ของคุณและบ่อยครั้งพบว่าสแน็ปช็อตbtrfsใช้พื้นที่จำนวนมาก หรือในกรณีอื่น ๆ คุณอาจต้องการล้างระบบไฟล์ของข้อมูลส่วนเกินทั้งหมดก่อนที่จะย้ายไปยัง / จาก VM หรือเปลี่ยนสื่อเก็บข้อมูลหรือบางสิ่งบางอย่างตามสายเหล่านั้น

แต่ฉันไม่สามารถดูเหมือนจะหาคำสั่งได้อย่างรวดเร็วเช็ดทั้งหมดของภาพรวมปลากะพงได้ดำเนินการทั้งผ่านปลากะพงหรือเครื่องมืออื่น ฉันจะทำสิ่งนี้ได้อย่างไร

คำตอบ:


25

คำสั่งในปลากะพงรุ่นล่าสุดคือ (ฉันจำไม่ได้เมื่อมันถูกนำมาใช้ แต่รุ่นในเช่น openSUSE 13.2 รองรับสิ่งนี้):

snapper delete number1-number2

ดังนั้นหากต้องการลบสแนปชอตทั้งหมด (สมมติว่าคุณมีไม่เกิน 100,000 รายการ) คุณต้องการ:

snapper delete 1-100000

เห็นได้ชัดว่านี่เป็นเพียงการลบสแน็ปช็อตในการกำหนดค่ารูทเริ่มต้นดังนั้นสำหรับการกำหนดค่าอื่นจะเป็น:

snapper -c configname delete number1-number2

ตอนนี้ฉันได้รับข้อผิดพลาด: ไม่พบ Snapshot '100000'
Pavel Šimerda

ty, ty, ty สังเกตว่าตัวดำเนินการช่วงไม่ทำงานฉันต้องลบสแนปชอตทั้งหมด 20 รายการด้วยตนเอง
พอล Vixie

4

คุณสามารถใช้การforวนซ้ำเพื่อลบสแนปชอตทั้งหมดภายในช่วง (เรียกใช้เป็นรูท )

# for i in `seq 1 999`; do snapper delete $i; done

สิ่งนี้จะเข้าสู่รายการที่ไม่ถูกต้อง (เมื่อหมายเลขไม่ตรงกับสแน็ปช็อต ID) ซึ่งจะส่งผลให้บันทึกข้อผิดพลาดที่ไม่เป็นอันตราย

ในการกำหนดช่วง (ขีด จำกัด ล่างและบน) ของสแน็ปช็อต ID ดังนั้นการวนซ้ำจะไม่ยาวโดยไม่จำเป็นให้ใช้:

snapper list

ผมพบว่าวิธีการแก้ปัญหานี้มาพร้อมกับการอภิปรายเกี่ยวกับวิธีการลดช่วงปลากะพงและการตั้งค่าการเก็บรักษา


-1

หากคุณกำลังทำงานกับปลากะพงรุ่นเก่าเช่น Debian jessie คุณสามารถใช้ bash-expansion:

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