Score:0

สคริปต์สำรองเซิร์ฟเวอร์ Ubuntu

ธง co

ต้องการความช่วยเหลือในการปรับแต่งสคริปต์เพื่อสำรองข้อมูลระบบของฉัน

ดังนั้นฉันจึงมีเซิร์ฟเวอร์ 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 สำหรับมัน อาจจะทำงานสัปดาห์ละครั้งในช่วงวันหยุดสุดสัปดาห์

ขอบคุณ

sudodus avatar
jp flag
ด้วยตัวเลือก `rsync` `--delete` ฉันจะบอกว่ามันเป็นสคริปต์ซิงโครไนซ์ ไม่ใช่สคริปต์สำรอง บางทีคุณควรพิจารณา `--backup` (และบางที `--backup-dir=`) ด้วย เพื่อบันทึก *เวอร์ชัน* ของไฟล์ที่มีการแก้ไขหรือลบ
co flag
มันเหมือนกับทางเลือกของ RAID ฉันไม่ต้องการเวอร์ชันก่อนหน้า หรือไฟล์ที่ถูกลบ ฉันแค่ต้องการสำเนาของเวอร์ชันที่ใช้งานได้ล่าสุดของระบบ
sudodus avatar
jp flag
ผมดูแล้วมันก็ดูดีสำหรับผม (แต่ผมยังไม่ได้ทดสอบหรือดูแบบละเอียดมากนัก)ฉันใช้ `rsync` ดังนั้นฉันจึงคุ้นเคยกับการรันด้วยตัวเลือก 'จำนวนมาก' และฉันคิดว่าตัวเลือกของคุณก็ใช้ได้ เป็นความคิดที่ดีที่จะเริ่มต้นด้วยการรันแบบแห้งและดูผลลัพธ์อย่างระมัดระวังก่อนที่จะรันกระบวนการคัดลอกจริง :-)
James S. avatar
de flag
ดูเหมือนว่าคุณกำลังพยายามถ่ายภาพสแน็ปช็อตเป็นระยะ ๆ ของระบบไฟล์ เพื่อให้คุณสามารถเปลี่ยนกลับเป็นสแน็ปช็อตได้ในกรณีที่เกิดภัยพิบัติ มีเหตุผลใดบ้างที่คุณไม่สามารถใช้ความสามารถในการถ่ายภาพสแน็ปช็อตของ LVM
co flag
@เจมส์ ส. ไม่รู้อะไรเลยเกี่ยวกับ LVM... ฉันจะลองดู ขอบคุณ
James S. avatar
de flag
มีเครื่องมือที่เรียกว่า "snapper" ซึ่งอาจเป็นสิ่งที่คุณต้องการ: http://snapper.io/overview.html
bac0n avatar
cn flag
ฉันคิดว่าการยกเว้นควรเป็น `--exclude={'/dev/*','/proc/*'}` คุณไม่ต้องการการขยาย glob
co flag
@เจมส์ ส. เห็นเครื่องมือนั้นแล้ว แต่ตอนนี้ฉันแค่ใช้ rsync เมื่อฉันมีเวลาเพิ่มเติมฉันจะตรวจสอบปลากะพงและถ้ามันตรงกับความต้องการของฉัน ฉันไม่ต้องการสแน็ปช็อต อย่างน้อยฉันก็คิดว่าไม่.. อย่างไรก็ตาม ขอบคุณสำหรับข้อมูล
co flag
@bac0n ขอบคุณสำหรับข้อมูล
James S. avatar
de flag
ฉันหมายความว่าสิ่งที่คุณกำลังอธิบายที่นี่ไม่ใช่ "ข้อมูลสำรอง" แต่เป็นสแนปชอต
co flag
@เจมส์ ส. โอเค เป็นคำที่ถูกต้อง :) แต่จุดประสงค์หลักคือมีไว้เพื่อสำรองข้อมูล/สแน็ปช็อต/สำเนาของระบบเท่านั้น เมื่อฉันตัดสินใจ ทำอันก่อนหน้านี้หายไป... ขอบคุณ

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา