ฉันจะใช้ tar สำหรับการสำรองข้อมูลเต็มรูปแบบและกู้คืนด้วยระบบบน SSD และกลับบ้านบน HDD ได้อย่างไร


14

ฉันจะใช้ tar สำหรับการสำรองข้อมูลเต็มรูปแบบและกู้คืนด้วยระบบบน SSD และกลับบ้านบน HDD ได้อย่างไร

การสำรองข้อมูลและคำตอบการกู้คืนที่มีอยู่ดูเหมือนจะไม่ครอบคลุมกรณีที่รูทและโฮมอยู่บนอุปกรณ์แยกกัน


ยินดีต้อนรับสู่ AU! คุณกำลังมองหาสิ่งหนึ่งครั้งหรือวิธีการแก้ปัญหาอย่างต่อเนื่อง / เป็นระยะ? ปลายทางการสำรองข้อมูลท้องถิ่นหรือระยะไกลหรือไม่ tarไม่สนใจอุปกรณ์และจุดเชื่อมต่อ โปรดแก้ไขโพสต์ของคุณเพื่อรวมข้อมูลเพิ่มเติม
David Foerster

"คำตอบการสำรองข้อมูลและเรียกคืนที่มีอยู่ดูเหมือนจะไม่ครอบคลุมกรณีที่รูทและโฮมอยู่บนอุปกรณ์ที่แยกกัน" เหตุผล: มันเป็นความคิดที่ไม่ดีและการสร้างไฟล์สำรอง 2 ไฟล์ไม่เพียง แต่ฉลาดเท่านั้น แต่ยังมีประสิทธิภาพมากกว่า
Rinzwind

คำตอบ:


17

แนะนำให้ทำการสำรองข้อมูลสองครั้ง 1 สำหรับ / และ 1 สำหรับ / home หากอยู่ในพาร์ติชันที่แตกต่างกัน หากคุณต้องการคุณจะต้องเพิ่มข้อยกเว้นจำนวนมากให้กับคำสั่งเดียว ตัวอย่าง:

sudo su
cd /
tar -cvpzf backup.tar.gz --exclude=/backup.tar.gz --one-file-system / 
tar -cvpzf backuphome.tar.gz --one-file-system /home/

จะสำรองข้อมูลรากของคุณและยกเว้นพาร์ทิชันที่เมาท์ทั้งหมดเช่น / สื่อ (คุณไม่ต้องการสำรองข้อมูลอุปกรณ์ภายนอก (คุณไม่ได้ทำจริงๆ)) และคุณไม่ต้องการสำรองข้อมูลบางอย่างเช่น / dev หรือ / proc และ / home ไปที่การสำรองข้อมูลอื่น

ในวิธีการข้างต้นการสำรองข้อมูลจะถูกเก็บไว้ใน / มันจะดีกว่าที่จะเก็บไว้ในสื่อภายนอก จากนั้นคุณสามารถวางไดเรกทอรีไว้ด้านหน้า backup.tar.gz และวาง--exclude=...จากคำสั่งที่ 1

  • backup.tar.gz เป็นการสำรองข้อมูล
  • --excludeจะป้องกันไม่ให้การสำรองข้อมูลที่จะ backupped
  • cvpzf: สร้าง, verbose, สงวนสิทธิ์, บีบอัด, ใช้ไฟล์

  • --one-file-system - อย่ารวมไฟล์ไว้ในระบบไฟล์อื่น หากคุณต้องการระบบไฟล์อื่นเช่นพาร์ติชั่น / home หรือสื่อภายนอกที่ติดตั้งใน / สื่อสำรองคุณต้องสำรองไฟล์เหล่านั้นแยกกันหรือข้ามแฟล็กนี้ หากคุณไม่ใช้แฟล็กนี้คุณจะต้องเพิ่มอาร์กิวเมนต์เพิ่มเติม --exclude = เพื่อหลีกเลี่ยงระบบไฟล์ที่คุณไม่ต้องการ สิ่งเหล่านี้จะเป็นไดเร็กทอรี / proc, / sys, / mnt, / media, / run และ / dev ในรูท/ proc และ / sys เป็นระบบไฟล์เสมือนที่ให้ windows เป็นตัวแปรของเคอร์เนลที่กำลังทำงานดังนั้นคุณไม่ต้องการลองสำรองข้อมูลหรือกู้คืน / dev เป็น tmpfs ซึ่งเนื้อหาถูกสร้างและลบแบบไดนามิกโดย udev ดังนั้นคุณจึงไม่ต้องการสำรองข้อมูลหรือกู้คืน ในทำนองเดียวกัน / run เป็น tmpfs ที่เก็บตัวแปรเกี่ยวกับระบบที่กำลังทำงานซึ่งไม่จำเป็นต้องสำรองข้อมูล ( ที่มา )


ดังนั้น ... หากคุณยังต้องการ "หนึ่งซับ" จริงๆมันอาจมีลักษณะเช่นนี้:

cd /
tar -cvpzf backup.tar.gz --exclude=/backup.tar.gz --exclude=/proc 
--exclude=/tmp --exclude=/mnt --exclude=/dev --exclude=/sys / 

(ฉันหวังว่าฉันจะได้รับทุกสิ่งที่ต้องยกเว้น)


การฟื้นฟูจะเป็นอย่างไร

sudo su
cd /
tar xvzf backup.tar.gz

ฉันไม่ได้ใช้sudoต่อหน้าคำสั่ง tar เนื่องจากคุณจะได้รับข้อความแสดงข้อผิดพลาดเกี่ยวกับการอนุญาต (เพราะไฟล์เป็นของ root)


ข้อเสนอแนะสองบรรทัดของคุณทำงานได้ดีมากยกเว้นเมื่อทำการสำรองข้อมูลระบบฉันได้รับข้อความเดียว "/lib64/ld-linux86-64.so2 tar: /: ไฟล์เปลี่ยนแปลงเมื่อเราอ่าน" เป็นเรื่องปกติหรือไม่ในระหว่างการสำรองข้อมูล
สร้าง

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

tar มาตรฐานไม่บีบอัดเพียงรวมทุกอย่างไว้ในไฟล์เดียว (TAR = Tape ARchive) ลอง gtar แทน
อลันแคมป์เบล

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