Skip to main content

การใช้ Backup และ Restore Data ใน Linux

บทนำ

การสำรองข้อมูล (Backup) และการกู้คืนข้อมูล (Restore) เป็นกระบวนการที่สำคัญในการป้องกันข้อมูลสูญหายและการบริหารจัดการข้อมูลในระบบ Linux โดยมีเครื่องมือและวิธีการหลายประเภทที่สามารถใช้ในการสำรองและกู้คืนข้อมูล ในบทนี้เราจะเรียนรู้เกี่ยวกับการใช้เครื่องมือสำรองข้อมูลและการกู้คืนข้อมูลใน Linux

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

1.1 การใช้ tar สำหรับการสำรองข้อมูล

คำสั่ง tar ใช้ในการบีบอัดและเก็บข้อมูลในรูปแบบไฟล์เก็บข้อมูล (archive) ซึ่งสามารถใช้ในการสำรองข้อมูลได้

1.1.1 การสำรองข้อมูลทั้งหมดในไดเรกทอรี

tar -czvf backup.tar.gz /path/to/directory
  • -c สร้างไฟล์ archive ใหม่
  • -z ใช้การบีบอัดด้วย gzip
  • -v แสดงรายละเอียดของไฟล์ที่กำลังถูกบีบอัด
  • -f ระบุชื่อไฟล์ archive ที่จะสร้าง

คำสั่งนี้จะสร้างไฟล์ backup.tar.gz ที่เก็บข้อมูลจากไดเรกทอรีที่ระบุ

1.1.2 การสำรองข้อมูลแบบเฉพาะไฟล์

tar -czvf backup.tar.gz /path/to/file1 /path/to/file2

คำสั่งนี้จะสำรองข้อมูลเฉพาะไฟล์ที่ระบุ

1.2 การใช้ rsync สำหรับการสำรองข้อมูล

rsync เป็นเครื่องมือที่ช่วยในการสำรองข้อมูลและซิงโครไนซ์ไฟล์ระหว่างแหล่งข้อมูลและปลายทาง

1.2.1 การสำรองข้อมูลไปยังที่เก็บปลายทาง

rsync -av /path/to/source/ /path/to/destination/
  • -a ใช้โหมด archive ซึ่งรักษาสิทธิ์การเข้าถึงและลำดับไฟล์
  • -v แสดงรายละเอียดของการทำงาน

1.3 การใช้ dd สำหรับการสำรองข้อมูลของดิสก์

คำสั่ง dd ใช้ในการทำสำเนาของทั้งดิสก์หรือพาร์ติชัน ซึ่งสามารถใช้ในการสำรองข้อมูลระดับบล็อก

sudo dd if=/dev/sda of=/path/to/backup.img bs=64K conv=noerror,sync
  • if ระบุแหล่งข้อมูล (input file)
  • of ระบุปลายทางของการสำรองข้อมูล (output file)
  • bs ระบุขนาดบล็อก
  • conv=noerror,sync ทำให้การสำรองข้อมูลไม่หยุดหากมีข้อผิดพลาด

2. การกู้คืนข้อมูล

2.1 การกู้คืนข้อมูลจากไฟล์ tar

2.1.1 การกู้คืนข้อมูลทั้งหมดจากไฟล์ tar

tar -xzvf backup.tar.gz -C /path/to/restore
  • -x ใช้เพื่อแตกไฟล์ archive
  • -z ใช้การบีบอัดด้วย gzip
  • -v แสดงรายละเอียดของไฟล์ที่แตก
  • -C ระบุที่ตั้งของไดเรกทอรีที่จะกู้คืนข้อมูลไป

2.1.2 การกู้คืนไฟล์จากไฟล์ tar

tar -xzvf backup.tar.gz /path/to/file -C /path/to/restore

คำสั่งนี้จะกู้คืนไฟล์ที่ระบุจากไฟล์ tar ไปยังที่ตั้งที่ต้องการ

2.2 การกู้คืนข้อมูลจาก rsync

2.2.1 การกู้คืนข้อมูลจากการสำรองด้วย rsync

rsync -av /path/to/backup/ /path/to/restore/

คำสั่งนี้จะกู้คืนข้อมูลจากที่เก็บข้อมูลสำรองไปยังปลายทาง

2.3 การกู้คืนข้อมูลจาก dd Image

2.3.1 การกู้คืนข้อมูลจาก Image ด้วย dd

sudo dd if=/path/to/backup.img of=/dev/sda bs=64K

คำสั่งนี้จะกู้คืนข้อมูลจากไฟล์ image ไปยังดิสก์หรือพาร์ติชันที่ต้องการ

3. การสำรองข้อมูลในกรณีที่มีการใช้ฐานข้อมูล

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

การใช้ mysqldump สามารถใช้เพื่อสำรองฐานข้อมูล MySQL

mysqldump -u username -p database_name > backup.sql
  • -u ระบุชื่อผู้ใช้ฐานข้อมูล
  • -p ร้องขอรหัสผ่าน
  • database_name ระบุชื่อฐานข้อมูล

3.2 การกู้คืนข้อมูลจาก MySQL

mysql -u username -p database_name < backup.sql

คำสั่งนี้จะนำข้อมูลจากไฟล์สำรองกลับมาสู่ฐานข้อมูล

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

การใช้ pg_dump สามารถใช้เพื่อสำรองฐานข้อมูล PostgreSQL

pg_dump -U username -F c database_name > backup.dump
  • -U ระบุชื่อผู้ใช้
  • -F c ระบุรูปแบบไฟล์ที่ใช้ (custom format)

3.4 การกู้คืนข้อมูลจาก PostgreSQL

pg_restore -U username -d database_name backup.dump

คำสั่งนี้จะกู้คืนข้อมูลจากไฟล์สำรองที่สร้างด้วย pg_dump

4. การใช้ Cron Jobs สำหรับการสำรองข้อมูลอัตโนมัติ

4.1 การตั้งเวลาสำรองข้อมูล

สามารถตั้งเวลาให้คำสั่งสำรองข้อมูลทำงานโดยอัตโนมัติด้วย cron

crontab -e

เพิ่มบรรทัดเพื่อกำหนดเวลาการสำรองข้อมูล เช่น:

0 2 * * * tar -czvf /path/to/backup/backup_$(date +\%F).tar.gz /path/to/data

คำสั่งนี้จะสำรองข้อมูลทุกวันเวลา 02:00 น.

5. สรุป

การสำรองข้อมูลและการกู้คืนข้อมูลเป็นขั้นตอนสำคัญในการรักษาความปลอดภัยของข้อมูลในระบบ Linux การใช้เครื่องมือที่หลากหลายเช่น tar, rsync, dd, mysqldump, และ pg_dump ช่วยให้การสำรองข้อมูลและการกู้คืนข้อมูลทำได้ง่ายและมีประสิทธิภาพมากขึ้น การตั้งค่า Cron Jobs ยังช่วยให้การสำรองข้อมูลสามารถทำได้โดยอัตโนมัติตามเวลาที่กำหนด