ผมจำไม่ได้ว่าเคยเขียนวิธีการสำรองข้อมูล โดยใช้ rsync แล้วหรือยัง เอาเป็นว่า หากเคยเขียนแล้วก้ออ่านกันอีกรอบก้อแล้วกันครับ ปกติถ้าเราจะ สำรองข้อมูลเราจะใช้ คำสั่ง cp แต่การสำรองข้อมูลแบบ rsync จะทำได้ดีกว่าการใช้คำสั่ง cp เนื่องจาก rsync จะสามารถคัดลอกข้อมูลต่อเนื่องได้ หรือคัดลอกเฉพาะไฟล์ที่มีการแก้ไข จนขนาดและ วันที่ที่แก้ไข เปลี่ยนแปลงไป หากเป็นการคัดลอกไฟล์แบบปกติจะต้องคัดลอกไฟล์ทั้งหมด ไม่สามารถเลือกเฉพาะไฟล์ที่มีขนาด หรือ วันที่แก้ไขที่เปลี่ยนแปลงไปได้

หากใช้คำสั่ง rsync โปรแกรมจะทำหน้าที่เปรียบเทียบกับข้อมูลเดิมและทำการคัดลอกเฉพาะไฟล์ที่มีข้อมูลเปลี่ยนแปลงไปเท่านั้น หากคุณต้องสำรองข้อมูลขนาดใหญ่มาก 2-3G เช่น บริการสำรองข้อมูลของเว็บโฮสติ้ง หรือ การสำรองข้อมูลที่มีการเปลี่ยนแปลงบ่อยๆ เช่น ไฟล์เซิร์ฟเวอร์ การสำรองข้อมูลโดยคำสั่ง cp ก้อใช้เวลานานกว่าการใช้คำสั่ง rsync เป็นอย่างมาก

หากคุณต้องการสำรองข้อมูลใน /home ลงใน usb harddisk หรือ harddisk อีกก้อน สามารถใช้คำสั่งดังนี้

#rsync -rvl /home /mnt/sdb1/backup

คำสั่งข้างต้นจะทำการสำรองข้อมูลจาก /home ไปยัง /mnt/sdb1/backup หากมีไฟล์ที่อยู่ใน /home ถูกลบไป ไฟลืที่ทำการสำรองใน /mnt/sdb1/backup จะไม่ถูกลบไปด้วย หากต้องการให้การสำรอง sync เหมือนกันกับ /home ตลอดให้คุณเพิ่ม --progress --update --delete เข้าไปด้วยดังนี้

#rsync -rvl --progress --update --delete /home /mnt/sdb1/backup

หากต้องการสำรองข้อมูลทุกๆ วันให้คุณตั้งค่าใน crontab ครับ เพียงเท่านี้ี้คุณก็สามารถสำรองข้อมูลของคุณได้แล้ว ลองประยุกต์ใช้โดยการเขียน shell script เพื่อสำรองข้อมูลแบบ snapshot ดูนะครับ ผมคิดว่าเป็นประโยชน์มากทีเดียว