ต้องการความช่วยเหลือในการปรับแต่งสคริปต์เพื่อสำรองข้อมูลระบบของฉัน
ดังนั้นฉันจึงมีเซิร์ฟเวอร์ 20.04 และทำงานเป็นระยะๆ เมื่อฉันทำการอัปเดต/เปลี่ยนแปลงบางอย่าง มันทำให้บางสิ่งเสียหาย และฉันก็เสียเวลาในการแก้ไขปัญหา
ตอนแรกฉันคิดว่าจะใช้ RAID 1 แต่แล้วฉันก็รู้ว่าถ้าฉันทำลายอะไหล่เดิมก็จะมีปัญหาเดียวกัน
ดังนั้นหลังจากคิดอยู่ครู่หนึ่ง ฉันจึงทำสำเนา dd ของดิสก์ต้นฉบับ (#1) ไปยังดิสก์อื่น (#2) และปล่อยให้ #2 เชื่อมต่ออยู่แต่ไม่ได้เมานต์
ตอนแรกฉันคิดว่าจะไม่เชื่อมต่อดิสก์และด้วยความช่วยเหลือจากสื่อที่ใช้บู๊ตได้ ฉันจะทำการสำรองข้อมูล dd ใหม่... แต่นั่นดูไม่เป็นมืออาชีพเอาซะเลย ดังนั้นฉันจึงตัดสินใจสร้างสคริปต์ที่เมานต์ #2 hd เรียก rsync และเลิกเมานต์ในตอนท้าย
จะใช้งานได้หรือไม่ ดิสก์เป็นเซกเตอร์ที่สมบูรณ์โดยการคัดลอกเซกเตอร์ และหลังจากจุดนี้ จะมีการเปลี่ยนแปลงของ #1 แสดงใน #2 ด้วย rsync
ฉันไม่มีประสบการณ์ในการสร้างเชลล์สคริปต์ ดังนั้นฉันต้องการความช่วยเหลือในการปรับแต่งของฉัน
ฉันต้องเมานต์ #2 ตรวจสอบว่ามันเมานต์จริงหรือไม่ (ตรวจสอบว่าโฟลเดอร์เมานต์ไม่ว่างเปล่าหรือไม่) เรียกใช้ rsync และเขียนบันทึกทั้งหมดลงในไฟล์ และในตอนท้ายให้ยกเลิกการเมานต์
นี่คือสิ่งที่ฉันมีตอนนี้:
#! /ถัง/ทุบตี
# -- วาร์ส
MOUNT_DEV='/dev/sdb2'
MOUNT_FOLDER='/mnt/hdd_backup'
แหล่งที่มา='/*'
DESTINATION='/mnt/hdd_backup/'
LOG_FILE='/home/jnap/external/rsync.log'
echo 'ติดตั้ง hdd สำรอง'
เมานต์ $MOUNT_DEV $MOUNT_FOLDER
echo 'ติดตั้งเสร็จแล้ว'
#ตรวจสอบว่าติดจริงไหม? dir ไม่ว่างเปล่า?
echo 'เรียกใช้ Rsync - DryRun เพื่อทดสอบเท่านั้น'
rsync -aAHXv --dry-run --delete $SOURCE $DESTINATION --exclude={/dev/*,/proc/*,/sys/*,/tmp/*,/run/*,/mnt/*, /media/*,/lost+found,/snap,/home/jnap/external/*,var/lib/lxcfs/*} > $LOG_FILE
echo 'เสร็จสิ้น Rsync'
echo 'ถอด HDD สำรอง'
เมานต์ -l $MOUNT_FOLDER
echo 'ยกเลิกการต่อเชื่อมเสร็จแล้ว'
ในตอนแรกนี่เป็นงานที่ทำด้วยมือ
แต่ต่อมาฉันกำลังคิดที่จะสร้าง cron job สำหรับมัน อาจจะทำงานสัปดาห์ละครั้งในช่วงวันหยุดสุดสัปดาห์
ขอบคุณ