สารบัญ:
- ขั้นตอนที่ 1: สมมติฐาน
- ขั้นตอนที่ 2: ติดตั้ง Rdiff-backup
- ขั้นตอนที่ 3: ระบุไดเร็กทอรีที่คุณต้องการสำรองข้อมูล
- ขั้นตอนที่ 4: อัตโนมัติ
- ขั้นตอนที่ 5: เขียนฟังก์ชัน
- ขั้นตอนที่ 6: บอกสคริปต์ว่าควรสำรองข้อมูล Dirs ใด
- ขั้นตอนที่ 7: สิ่งทั้งหมดเข้าด้วยกันตอนนี้
- ขั้นตอนที่ 8: เพิ่มใน Cron
- ขั้นตอนที่ 9: คืนค่า
2025 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2025-01-13 06:58
คำแนะนำนี้จะแสดงให้คุณเห็นถึงวิธีการเรียกใช้ระบบสำรองข้อมูลและการกู้คืนแบบเต็มรูปแบบอย่างง่ายบน linux โดยใช้ rdiff-backup และไดรฟ์ usb
ขั้นตอนที่ 1: สมมติฐาน
ฉันจะถือว่าระบบที่ใช้ yum สำหรับการติดตั้งและติดตั้งไดรฟ์ usb ของคุณเป็น /mnt//backup. I ใช้ fedora แต่คุณสามารถใช้อะไรก็ได้และเพียงแค่ติดตั้ง rdiff-backup ตามที่คุณต้องการ นอกจากนี้ยังสามารถดาวน์โหลดได้จากที่นี่:
ขั้นตอนที่ 2: ติดตั้ง Rdiff-backup
ติดตั้ง rdiff-backup[root@HOST scripts]# yum install rdiff-backup
ขั้นตอนที่ 3: ระบุไดเร็กทอรีที่คุณต้องการสำรองข้อมูล
คุณสามารถสำรองข้อมูลทั้งระบบได้ แต่นั่นอาจเกินความจำเป็น ฉันต้องการสำรองไดเร็กทอรี /etc/ สำหรับการเปลี่ยนแปลงใด ๆ ที่ฉันอาจทำกับชื่อ sendmail เครือข่าย ฯลฯ /data และ home dirs ของฉัน
ขั้นตอนที่ 4: อัตโนมัติ
เห็นได้ชัดว่าคุณไม่ต้องการทำสิ่งนี้ด้วยมือ เราจะเขียนสคริปต์ สิ่งแรกในสคริปต์ เราจะตรวจสอบเพื่อดูว่ามีการติดตั้งไดรฟ์ usb และปิดหรือไม่ #!/bin/bash#สคริปต์สำหรับสำรองข้อมูลไปยังไดรฟ์ usbBACKUPBASE="/backups"#ตรวจสอบเพื่อดูว่ามีการติดตั้งเป้าหมายการสำรองข้อมูลไว้หรือไม่หาก `df -h | grep $BACKUPBASE >/dev/null ` แล้วก้อง "การเริ่มต้น $0 `date`" อื่น echo "ข้อผิดพลาด: $BACKUPBASE ไม่ได้ต่อเชื่อม" echo "$0 ออกจาก `date' " exit 1fi
ขั้นตอนที่ 5: เขียนฟังก์ชัน
ต่อไปเราจะเขียนฟังก์ชั่นเพื่อทำการสำรองข้อมูลจริง ๆ การสำรองข้อมูลฟังก์ชัน { DEST=$1$2 SOURCE=$2 echo "Src: $SOURCE" if [-d $DEST] แล้ว echo "Dest: $DEST" else mkdir -p $DEST echo "Dest: $DEST -created" OPTS=" --force" fi #ดำเนินการสำรองข้อมูล rdiff-backup -v2 --exclude-special-files $OPTS $SOURCE $DEST #Cleanup version files older than 4weeks rdiff-backup -v2 --remove-older-than 4W --force $ DEST #พิมพ์รายงานของสิ่งที่เราสำรองและล้างข้อมูล rdiff-backup --list-changed-since 0D23h00m $DEST}
ขั้นตอนที่ 6: บอกสคริปต์ว่าควรสำรองข้อมูล Dirs ใด
สำรองข้อมูล $BACKUPBASE /databackup $BACKUPBASE /etcbackup $BACKUPBASE /usr/localbackup $BACKUPBASE /home
ขั้นตอนที่ 7: สิ่งทั้งหมดเข้าด้วยกันตอนนี้
#!/bin/bash#สคริปต์เพื่อสำรองข้อมูลไปยังไดรฟ์ usbBACKUPBASE="/backups"#ตรวจสอบเพื่อดูว่ามีการติดตั้งไดรฟ์สำรองหรือไม่ ถ้า `df -h | grep $BACKUPBASE >/dev/null `จากนั้น echo "เริ่มต้น $0 `date`" อื่น echo "ข้อผิดพลาด: $BACKUPBASE ไม่ได้ต่อเชื่อม" echo "$0 ออกจาก `date` " exit 1fifunction backup { DEST=$1$2 SOURCE=$2 echo "Src: $SOURCE" if [-d $DEST] แล้ว echo "Dest: $DEST" else mkdir -p $DEST echo "Dest: $DEST -created" OPTS="--force" fi #Perform backup rdiff-backup -v2 --exclude-special-files $OPTS $SOURCE $DEST #Cleanup version files older than 4weeks rdiff-backup -v2 --remove-older-than 4W --force $DEST #พิมพ์รายงานของสิ่งที่เราสำรองและล้าง rdiff-backup --list-changed-since 0D23h00m $DEST}backup $BACKUPBASE /databackup $BACKUPBASE /etcbackup $BACKUPBASE /usr/localbackup $BACKUPBASE /home สำรอง
ขั้นตอนที่ 8: เพิ่มใน Cron
[สคริปต์ root@HOST]# crontab -e10 1 * * * /usr/local/scripts/backup-rdiff.sh > /var/log/backup.log 2>&1
ขั้นตอนที่ 9: คืนค่า
ในการกู้คืนเวอร์ชันล่าสุด คุณสามารถคัดลอกไฟล์ออกจากไดเร็กทอรีสำรอง หากคุณต้องการเวอร์ชันจาก 2 วันที่ผ่านมา:rdiff-backup -r 2D /backup/etc/named.conf /etc/named.confSimple และมีประสิทธิภาพมาก