การสำรองข้อมูล

จาก Wiki Opensource

บันทึกนี้ปรับปรุงล่าสุดเมื่อวันที่ 21-03-2555

ดูแลโดย WIPAT

  • เป็นคำแนะนำการสำรองข้อมูลทั้ง backup และ restore


  1. โปรแกรม cp เป็นคำสั่งพื้นฐานเบื้องต้นที่ใช้คัดลอกข้อมูล
  2. ลินุกซ์นิยมรูปแบบคำสั่งเป็นประมาณว่า cp source target
    โดยที่ source หมายถึง directory หรือ file ต้นทาง
    ส่วน target หมายถึง directory หรือ file ปลายทาง
  3. ลองคำสั่ง cp -pv /etc/resolv.conf /tmp  ใช้คัดลอกแฟ้มต้นทางคือ /etc/resolv.conf  ไปเก็บไว้ที่ directory /tmp
    ค่า -p คือให้คงค่ารายละเอียดของต้นฉบับเดิมเช่นเวลา -v คือให้แสดงขั้นตอนขณะทำงาน ผลคือได้แฟ้มใหม่อยู่ที่ /tmp/resolv.conf
  4. ลองคำสั่ง cp -pv /etc/resolv.conf /tmp/mytest.txt  ใช้คัดลอกแฟ้มต้นทางคือ /etc/resolv.conf  ไปเก้บที่แฟ้ม /tmp/mytest.txt
    ผลคือได้แฟ้มใหม่อยู่ที่ /tmp/mytest.txt เนื้อหาเดียวกับ /etc/resolv.conf
  5. ลองคำสั่ง cp -Rpv  /etc/network /tmp ใช้คัดลอกแฟ้มต้นทางคือ /etc/network  พร้อม subdirecotry ไปเก็บไว้ที่ directory /tmp
    ค่า -R คือเอา subdirectory มาด้วย ผลคือได้ directory ใหม่อยู่ที่ /tmp/network
  6. โปรแกรม rsync ทำงานคล้ายกับ cp ต่างกันที่ rsync สามารถคัดเลือกเฉพาะที่แตกต่าง หรือลบส่วนต่างทิ้งได้
    เหมาะสำหรับการคัดลอกให้ได้ข้อมูลที่เหมือนกันกับต้นฉบับ
  7. ลองคำสั่ง rsync -auv  /etc/network /tmp  สังเกตุดูว่าจะมีการคัดลอกข้อมูลไปเก็บที่ /tmp
    ค่า -a คือให้คงค่ารายละเอียดของต้นฉบับเดิมเช่นเวลา -v คือให้แสดงขั้นตอนขณะทำงาน -u คือเลือกเฉพาะที่แตกต่าง
  8. ลองคำสั่ง rsync -auv  /etc/network /tmp อีกครั้ง คราวนี้จะไม่มีการคัดลอกข้อมูลไปเนื่องจากว่า ของเดิมถูกต้องครบถ้วนอยู่แล้ว
  9. ตัวอย่างคำสั่ง rsync -auv --delete  /etc/network /tmp
    ค่า --delete  คือให้ลบแฟ้มบนปลายทางที่แตกต่างออกด้วย ทำให้ทั้งต้นทางและปลายทางมีข้อมูลเหมือนๆกัน
  10. โปรแกรม cp ใช้สำหรับคัดลอกแฟ้มภายใน server เดียวกันเท่านั้น
    หากต้องการคัดลอกข้าม server ต้องใช้โปรแกรม scp
    และต้องมีการติดตั้ง ssh server บน server นั้นก่อนด้วย
  11. ลองคำสั่ง scp /etc/resolv.conf myname@myserver.domain:/tmp
    เป็นการคัดลอกแฟ้ม /etc/resolv.conf ไปเก็บไว้ที่ /tmp ของ server ชื่อ myserver.domain ด้วยผู้ใช้คือ myname
    รูปแบบการระบุ server คล้ายกับการ ssh คือ username@server แต่มีเครื่องหมาย : ต่อท้ายพร้อม directory ปลายทาง
    ตอนคำสั่ง scp เริ่มทำงาน จะมีการถาม username ต้องป้อนรหัสผ่านให้ถูกต้องด้วย
  12. ลองคำสั่ง scp -r /etc/resolv.conf myname@myserver.domain:/tmp
    ค่า -r คือเอา subdirectory มาด้วย
  13. ลองคำสั่ง scp myname@myserver.domain:/etc/resolv.conf  /tmp  เป็นการคัดลอกข้อมูลจาก server ตัวอื่นมาเก็บ
  14. โปรแกรม rsync สามารถคัดลอกข้อมูลระหว่าง server ได้ด้วย
  15. ลองคำสั่ง rsync -auv -e ssh myname@myserver.domain:/etc/network /tmp
    รูปแบบคำสั่งทำนองเดียวกับ scp แต่ต้องเพิ่มค่า -e ssh เข้าไป เป็นการกำหนดให้ rsync ผ่าน ssh