สร้างไฟล์ shell script ด้วยคำสั่ง nano mysqldump.sh และเพิ่มข้อความให้ทำการสำรองข้อมูล โดยชื่อไฟล์มีวันที่สำรองข้อมูล โดยเปลี่ยน /home/administrator/backup/ เป็นตำแหน่งที่ต้องการจัดเก็บไฟล์
mysqldump -u root -p --all-databases | gzip > /home/administrator/backup/mysqldb_$(date +%Y%m%d)
.sql.gz
mysqldump -u root -p database | gzip > database-$(date +%Y%m%d).sql.gz
เปลี่ยนค่าของไฟล์ mysqldump.sh เพื่อให้ประมวลผลได้
chmod +x /path/to/mysqldump.sh
ทดสอบการสำรองข้อมูลด้วยคำสั่ง
sh /path/to/mysqldump.sh
ถ้าสคริปสามารถใช้งานได้ จะพบ ไฟล์ที่ชื่อ mysqldb_ปี-เดือน-วัน.sql.gz ในโฟลเดอร์ /home/administrator/backup ที่กำหนดไว้
เมื่อสคริปทำงานได้ถูกต้อง จึงกำหนดเวลาการสำรองข้อมูลด้วย Crontab ด้วยคำสั่ง
crontab -e
แล้วจึงพิมพ์คำสั่งลงในตอนท้ายของไฟล์ หากต้องการให้ทำการสำรองไฟล์ในเวลา 23:30 น. ของทุกวัน ให้พิมพ์ข้อความดังนี้
30 23 * * * /path/to/mysqldump.sh
เพียงเท่านี้เราก็สามารถสำรองไฟล์ข้อมูล MySQL ใน Server Linux ของเราได้โดยอัตโนมัติ แต่อย่าลืมดาวน์โหลดไฟล์มาเก็บไว้เป็นประจำด้วยนะครับ
และสามารถคืนค่าฐานข้อมูล MySQL ด้วยคำสั่ง (อย่าลืมสร้างฐานข้อมูลก่อน)
mysql -u [user] -p [database_name] < [filename].sql
หรือ
gunzip < [backupfile.sql.gz] | mysql -u [username] -p[password]
คำสั่งส่งไฟล์จาก Server ไปอีกเครื่องหนึ่ง
scp database-20210701.sql.gz [email protected]:/home/user/backup