สำนักวิทยบริการและเทคโนโลยีสารสนเทศ

Office of Academic Resources and Information Technology

วิธีการใช้ rsync เพื่อสำรองข้อมูล บน Linux


   rsync  เป็นโปรโตคอลที่สร้างขึ้นสำหรับระบบยูนิกซ์เหมือนที่ให้ความคล่องตัวที่ไม่น่าเชื่อสำหรับการสำรองข้อมูลและซิงโครไนซ์ข้อมูล สามารถใช้ในการสำรองไฟล์ไปยังไดเร็กทอรีอื่นหรือสามารถกำหนดค่าให้ซิงค์ผ่านอินเทอร์เน็ตไปยังโฮสต์อื่นได้
   rsync สามารถ Backup ข้อมูล Directory หนึ่งไปยังอีก Directory ทำงานได้หลายโหมด และสามารถใช้ร่วมกับ ssh ก็สามารถ Backup ไฟล์ข้าม Server ได้ ซึ่ง rsync มีให้ใช้กับทุก OS นั่นหมายความว่าเรา สามารถ Backup Directory ข้าม Server ข้าม OS ได้

Linux ต้องติดตั้งโปรแกรม rsync

apt-get install rsync

- Backup Driectory ในเครื่อง server เดียวกัน  
เช่น ต้องการ backup ข้อมูลใน /var/www/html  มาไว้ที่ /backup/xxx   ใช้คำสั่ง 

rsync -av --delete /var/www/html/ /backup/xxx/

" คำสั่งด้านบนจะทำการ sync ข้อมูลให้ตรงกันเนื้อหาของ /var/www/html/ ไปยัง /backup/xxx/ และถ้ามีการเปลี่ยนแปลง สร้างหรือลบ ใน /var/www/html/ ข้อมูลใน /backup/xxx/ จะเปลี่ยนแปลงเหมือนกันกับข้อมูลต้นฉบับ "

- Backup จาก Server ไปไว้อีก Server

rsync -av --delete -e 'ssh -p 12345' root@192.168.0.1:/Directory2/  /Directory1/ 

"คำสั่งด้านบน จะทำการ sync ข้อมูลจาก server ปลายทาง 192.168.0.1  ใน Folder Directory2 มาไว้ในเครื่อง Directory1 ใน server ต้นทาง"

  ความหมาย Option แต่ละตัว
-a คือ archive ทำให้ ไฟล์ตันฉบับกับไฟล์ปลายทางเหมือนกันทุกอย่าง
-v คือ verbose ให้แสดงรายละเอียดระหว่างทำงานขึ้นมาบนหน้าจอ
--exclude คือไม่รวมไฟล์ สามารถให้ รูปแบบ ได้เช่น ตามตัวอย่างหมายความว่า ไม่เอา ไฟล์ทุกไฟล์ที่ .gz ที่อยู่ใน home/admin/admin_backups/ *
--delete ให้ลบไฟล์ปลายทางถ้าไฟล์ต้นทางถูกลบไป
-p เป็นการกำหนด port ssh กรณีที่ server เปลี่ยน port 

การกำหนดให้ rsync backups อัตโนมัติ โดยใช้ crontab

#crontab -e
0 22 * * * rsync -av --delete -e 'ssh -p 12345'  root@192.168.0.1:/Directory2/  /Directory1/ 

"คำสั่งด้านบน จะเป็นการตั้งเวลาในการ Backup ข้อมูล ทุกวันเวลา 4 ทุ่ม หรือ 22.00 น. จะทำการ sync ข้อมูลจาก server ปลายทาง 192.168.0.1  ใน Folder Directory2 มาไว้ในเครื่อง Directory1 ใน server ต้นทาง"
** การ Sync โดย rsync กรณีที่ Network ขาดหรือหลุด จะหยุดทำงานทันที แล้วจะเริ่ม sync ใหม่ตามเวลาที่ตั้งไว้ **
 
ประเภทบทความ: