ข้ามไปยังเนื้อหาหลัก

VPS: สำรองข้อมูลเซิร์ฟเวอร์ Linux ด้วย Rsync

คู่มือนี้ถูกสร้างขึ้นด้วยผลิตภัณฑ์ดังต่อไปนี้:

(รายละเอียดอาจแตกต่างกันไปตามผลิตภัณฑ์จากผู้ให้บริการต่างๆ แต่แนวคิดหลักยังคงเหมือนเดิม)

Rsync:

สามารถสำรองข้อมูลได้ด้วยเครื่องมือ Rsync
โดยสามารถคัดลอกข้อมูลไปยังไดเรกทอรี/ไดรฟ์อื่นในเครื่องเดียวกัน หรือไปยังระบบระยะไกลก็ได้

คัดลอกข้อมูลไปยังไดเรกทอรีหรือไดรฟ์ในเครื่องอื่น:

ข้อมูล

ระวัง: การรันครั้งแรกอาจใช้เวลานานกว่าครั้งถัดไปมาก ขึ้นอยู่กับปริมาณข้อมูล เพราะครั้งแรก Rsync จะซิงค์ข้อมูลทั้งหมด แต่ตั้งแต่ครั้งที่สองเป็นต้นไปจะซิงค์เฉพาะข้อมูลที่เปลี่ยนแปลงเท่านั้น

ดังนั้นจะได้สำรองข้อมูลแบบเพิ่มทีละนิด (incremental backup)

ขั้นตอนที่ 1

สามารถติดตั้ง Rsync ด้วยคำสั่งนี้:

apt install rsync

เมื่อติดตั้งเสร็จแล้วก็สามารถใช้งานได้ทันที

ขั้นตอนที่ 2

ในตัวอย่างนี้ โฟลเดอร์ Client ภายใต้ /home จะถูกซิงค์ไปยังโฟลเดอร์ Backup ภายใต้ /home

สามารถทำได้ด้วยคำสั่งนี้:

rsync -arz /home/Client /home/Backup

-a=เก็บรักษาคุณสมบัติของไฟล์ทั้งหมด (archiving)


-r=ซิงค์แบบเรียกซ้ำ (recursive) รวมโฟลเดอร์ย่อยด้วย


-z=บีบอัดข้อมูล ขึ้นกับปริมาณ/ขนาดข้อมูล

โฟลเดอร์ถูกซิงค์เรียบร้อยแล้ว

ถ้าไฟล์ในโฟลเดอร์ Client ถูกลบตอนนี้ ไฟล์นั้นจะยังคงอยู่ในโฟลเดอร์ Backup
แต่ถ้าต้องการให้ไฟล์ใน Backup ตรงกับ Client แบบ 1:1 จริง ๆ ก็สามารถแก้ไขคำสั่ง rsync ได้ง่าย ๆ เพื่อให้ข้อมูลที่ไม่มีใน Client ถูกลบออกจาก Backup ด้วย

คำสั่งที่แก้ไขแล้วคือ:

rsync -arz --delete /home/Client /home/Backup

-a=เก็บรักษาคุณสมบัติของไฟล์ทั้งหมด (archiving)


-r=ซิงค์แบบเรียกซ้ำ (recursive) รวมโฟลเดอร์ย่อยด้วย


-z=บีบอัดข้อมูล ขึ้นกับปริมาณ/ขนาดข้อมูล


--delete=ลบข้อมูลที่ไม่มีในต้นทางแต่ยังอยู่ในปลายทาง

ขั้นตอนที่ 3

เพื่อไม่ต้องรันคำสั่งนี้ด้วยมือทุกครั้ง สามารถตั้งเป็น cronjob ได้เลย
เช่น ต้องการสำรองข้อมูลทุกวันตอนตี 3:

เปิด crontab -e:

กด 1 เพื่อใช้ nano เป็นตัวแก้ไข
กด 2 เพื่อใช้ vim เป็นตัวแก้ไข

เมื่อเปิดไฟล์ด้วย nano แล้ว ก็สามารถสร้างและใส่ crontab ได้เลย
สามารถสร้าง crontab ได้จาก Generator นี้

crontab ที่ใส่จะหน้าตาแบบนี้:

0 3 * * * rsync --progress -arz --delete -e  "ssh -i /home/sshkey/keybackup" /home/Client/ root@123.123.123.123:/home/Backup/Home-Server1/ >/dev/null 2>&1

ทุกวันตอนตี 3 คำสั่งนี้จะถูกรันและสร้างสำรองข้อมูล