mysqldump แบบตั้งเวลา Backup ต้องทำไงครับ
ถ้าเป็นการ backup บน linux server ตามนี้ครับ
อันนี้เป็นคำสั่งตรงๆที่ linuxserver ครับ hos ip 192168.20.2 , user=sa , pasword=sa ,ไปเก็บไว้ที่ /var/backup ชื่อ hos1.sql
1. #mysqldump --opt --default-character-set=tis620 --force --allow-keywords --single-transaction -h 192.168.20.2 -u sa -psa hos > /var/backup/hos1.sql
2. ประยุกต์ทำเป็น bat file ครับ ตั้งชื่อ backup1.sh เก็บไฟล์ bat ไว้ที่ /home/ponlawat
#vi backup.sh
#!/bin/sh
mysqldump --opt --default-character-set=tis620 --force --allow-keywords --single-transaction -h 192.168.20.2 -u sa -psa hos > /var/backup/hos1.sql
3. ตั้งเวลาbackup โคยใช้ crontab คำสั่งดังนี้
#crontab -e
0 8 * * * sh /home/ponlawat/backup1.sh
ความหมาย คือ เวลา 8.00 น. ให้ รัน bat file backup1.sh ที่ /home/ponlawat/
ซึ่งใน bat file คือ
#!/bin/sh
mysqldump --opt --default-character-set=tis620 --force --allow-keywords --single-transaction -h 192.168.20.2 -u sa -psa hos > /var/backup/hos1.sql
4. ไฟล์ hos1.sql มันใหญ่ zip ไว้ก็ได้ครับ คำสั่ง
# gzip /var/backup/hos1.sql
5. นำไป ใส่ ใน crontab
0 8 * * * sh /home/ponlawat/backup1.sh
30 8 * * * gzip -f /var/backup/hos1.sql
ความหมาย
>>> เมื่อ backup ได้ hos1.sql ตอน 08.00น. ทุกวัน ที่เก็บไว้ใน /var/backup แล้ว
ต่อมา 08.30 มันจะ zip ไฟล์ให้ครับ