Linux19

จาก Wiki Opensource

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

ดูแลโดย WIBOON


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


รายละเอียด

การคัดลอกแฟ้มภายในเครื่องเดียวกัน

  1. โปรแกรม cp เป็นคำสั่งพื้นฐานเบื้องต้นที่ใช้คัดลอกข้อมูล
  2. ลินุกซ์นิยมรูปแบบคำสั่งเป็นประมาณว่า cp source target
    โดยที่ source หมายถึง directory หรือ file ต้นทาง
    ส่วน target หมายถึง directory หรือ file ปลายทาง
  3. แบบที่ 1
    ลองคำสั่ง cp -pv /etc/hosts /tmp ใช้คัดลอกแฟ้มต้นทางคือ /etc/hosts ไปเก็บไว้ที่ directory /tmp
    ค่า -p คือให้คงค่ารายละเอียดของต้นฉบับเดิมเช่นเวลา -v คือให้แสดงขั้นตอนขณะทำงาน ผลคือได้แฟ้มใหม่อยู่ที่ /tmp/hosts
  4. แบบที่ 2
    ลองคำสั่ง cp -pv /etc/hosts /tmp/myhosts ใช้คัดลอกแฟ้มต้นทางคือ /etc/hosts ไปเก็บที่แฟ้ม /tmp/myhosts
    ผลคือได้แฟ้มใหม่อยู่ที่ /tmp/myhosts เนื้อหาเดียวกับ /etc/hosts
  5. แบบที่ 3
    ลองคำสั่ง cp -Rpv /etc/network /tmp ใช้คัดลอกแฟ้มต้นทางคือ /etc/network พร้อม subdirectory ไปเก็บไว้ที่ directory /tmp
    ค่า -R คือเอา subdirectory มาด้วย ผลคือได้ directory ใหม่อยู่ที่ /tmp/network


ขั้นตอนการ import appliance

  • เพื่อให้มีเครื่องเซิร์ฟเวอร์อีก 1 เครื่อง สำหรับเป็นที่เก็บไฟล์ backup ดังนั้นใน LAB ครั้งนี้ได้เตรียม VM ชื่อ backup-server ไว้ให้แล้ว ให้ทำขึ้นตอนการ import appliance
  1. ไปที่เมนู File แล้วเลือก Import Appliance
  2. คลิก Open Appliance และเลือกไฟล์ backup-server.ova
  3. ในหน้า Appliance Setting ให้ติ๊กทำเครื่องหมายถูก หน้าข้อความ Reinitialize the MAC address of all network cards
  4. คลิก Import
  5. เมื่อเสร็จการ Import ให้ตั้งค่า network adapter ของ VM นี่้เป็น Bridged Adapter
  6. เปิด VM ชื่อ backup-server ใช้งานด้วยหมายเลขไอพีแบบ dhcp หรือ จะเข้าไปแก้ไขหมายเลขไอพีแบบ fixed ก็ได้
  7. แล้วสร้างไดเรกทอรีชื่อ backup_testjoomla ด้วยคำสั่ง
    mkdir backup_testjoomla


การสำรองข้อมูลข้ามเครื่อง

  1. หากต้องการคัดลอกข้าม server ต้องใช้คำสั่ง scp และต้องมีการติดตั้ง ssh server บน server นั้นก่อนแล้วด้วย
  2. แบบที่ 1 สำรองข้อมูลไปที่อีกเครื่อง
    ลองคำสั่ง scp /etc/hosts myname@myserver.domain:/tmp
    เป็นการคัดลอกแฟ้ม /etc/hosts ไปเก็บไว้ที่ /tmp ของ server ชื่อ myserver.domain ด้วยผู้ใช้คือ myname
    รูปแบบการระบุ server คล้ายกับการ ssh คือ username@server แต่มีเครื่องหมาย : ต่อท้ายพร้อม directory ปลายทาง
    ตอนคำสั่ง scp เริ่มทำงาน จะมีการถาม username ต้องป้อนรหัสผ่านให้ถูกต้องด้วย
    เช่น myname คือ mama, myserver.domain คือ 192.168.3.124
    scp /etc/hosts mama@192.168.3.124:/tmp
  3. แบบที่ 2 ไปเอาข้อมูลมา
    ลองคำสั่ง scp myname@myserver.domain:/etc/hosts /tmp เป็นการคัดลอกข้อมูลจาก server ตัวอื่นมาเก็บ
    เช่น
    scp mama@192.168.3.124:/etc/hosts /tmp
  4. ตัวอย่างการใช้งานจริง
    สำรองข้อมูล 2 อย่างจากเครื่องเซิร์ฟเวอร์ที่มีบริการ Joomla! ไปไว้อีกเครื่อง (backup-server) ใช้คำสั่งดังนี้
    1.สำรองฐานข้อมูล
    mysqldump -u mamamysql -pmamapass testdatabase > testjoomla_20121121.sql
    scp testjoomla_20121121.sql mama@192.168.3.124:backup_testjoomla
    จะมีการถามรหัสผ่านของ username mama ของเครื่อง 192.168.3.124
    2.สำรองไฟล์
    tar -zcp -f testjoomla_20121121.tgz -C /var/www/testjoomla .
    scp testjoomla__20121121.tgz mama@192.168.3.124:backup_testjoomla
    จะมีการถามรหัสผ่านของ username mama ของเครื่อง 192.168.3.124


การสำรองข้อมูลข้ามเครื่องโดยไม่ต้องถามรหัสผ่าน

  1. ใช้คำสั่งดังนี้คือ ssh-keygen -t dsa ได้ผลข้อความตัวอย่างว่า
    Generating public/private dsa key pair.
    Enter file in which to save the key (/home/User/.ssh/id_dsa):
    ให้ป้อน Enterจะได้ข้อความตัวอย่างว่า
    Enter passphrase (empty for no passphrase):
    ให้ป้อน Enterจะได้ข้อความตัวอย่างว่า
    Enter same passphrase again:
    ให้ป้อน Enterจะได้ข้อความตัวอย่างว่า
    Your identification has been saved in /home/User/.ssh/id_dsa.
    Your public key has been saved in /home/User/.ssh/id_dsa.pub.
    The key fingerprint is:
    66:ce:cc:8d:33:0d:49:9a:05:26:77:95:1a:3e:96:5f User1@Server1

    ถึงตอนนี้ ระบบจะสร้างแฟ้ม ~/.ssh/id_dsa และ ~/.ssh/id_dsa.pub ขึ้นมา
  2. ให้นำแฟ้ม ~/.ssh/id_dsa.pub จากเครื่องนี้ ไปเก็บไว้ที่ home ของ User2 ปลายทาง @server2
    ด้วยตัวอย่างคำสั่งว่า ssh-copy-id -i ~/.ssh/id_dsa.pub User2@Server2
    เช่น

    ssh-copy-id -i ~/.ssh/id_dsa.pub mama@192.168.3.124
    อาจมีการถามรหัสผ่านของ User2@Server2 ให้ป้อนรหัสผ่านให้ถูกด้วย
    หากสำเร็จถูกต้อง ข้อมูลจะถูกเก็บที่ home ของ User2 ปลายทาง @server2 ในแฟ้ม ~/.ssh/authorized_keys
  3. เพื่อความปลอดภัย ให้กำหนดสิทธิ์เฉพาะเจ้าของจึงจะอ่านแฟ้มเหล่านีได้
    ด้วยตัวอย่างคำสั่ง
    chmod 600 ~/.ssh/id_dsa ~/.ssh/id_dsa.pub
  4. ตัวอย่างการใช้งานจริง
    สำรองข้อมูล 2 อย่างจากเครื่องเซิร์ฟเวอร์ที่มีบริการ Joomla! ไปไว้อีกเครื่อง (backup-server) ใช้คำสั่งดังนี้
    1.สำรองฐานข้อมูล
    mysqldump -u mamamysql -pmamapass testdatabase > testjoomla_20121121_2.sql
    scp -i /home/mama/.ssh/id_dsa testjoomla_20121121_2.sql mama@192.168.3.124:backup_testjoomla
    จะไม่มีการถามรหัสผ่านของ username mama ของเครื่อง 192.168.3.124
    2.สำรองไฟล์
    tar -zcp -f testjoomla_20121121_2.tgz -C /var/www/testjoomla .
    scp -i /home/mama/.ssh/id_dsa testjoomla_20121121_2.tgz mama@192.168.3.124:backup_testjoomla
    จะไม่มีการถามรหัสผ่านของ username mama ของเครื่อง 192.168.3.124