Tự backup Database và Source code bằng Crontab trong CentMinMod

backup

Tạo file Backup

Tạo thư mục backups trong /var và set full quyền 777

mkdir /var/backups/

Tạo 1 file backup.sh trong /root với nội dung như sau và set có quyền thực thi 755:

#!/bin/bash
{
 printf "subject:Backup for VPS\nfrom:[email protected]\n\n"
 mkdir /var/backups/$(date +"%Y-%m-%d")/
 mkdir /var/backups/$(date +"%Y-%m-%d")/websitecuaban.com/
 echo "Starting backup database for websitecuaban.com..."
 mysqldump --single-transaction --routines --triggers --add-drop-table --extended-insert -u username -h 127.0.0.1 -p'matkhau' database | gzip -9 > /var/backups/$(date +"%Y-%m-%d")/websitecuaban.com/db_$(date +"%Y-%m-%d").sql.gz
 echo "Starting backup files for websitecuaban.com..."
 zip -r /var/backups/$(date +"%Y-%m-%d")/websitecuaban.com/file_$(date +"%Y-%m-%d").zip /var/www/websitecuaban.com/public_html/ -q -x /var/www/websitecuaban.com/public_html/wp-content/cache/**\*
} | /usr/sbin/sendmail "[email protected]"

Thay đổi các phần màu xanh ứng với website của bạn.

Bây giờ bạn có thể chạy để kiểm tra file backup có hoạt động hay không bằng lệnh:

/root/backup.sh

Tạo crontab để tự động chạy file backup.sh

Cấu trúc của Crontab

 .---------------- minute (0 - 59) 
 | .------------- hour (0 - 23)
 | | .---------- day of month (1 - 31)
 | | | .------- month (1 - 12) OR jan,feb,mar,apr ... 
 | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat 
 | | | | |
 * * * * * <command to be executed>

Ví dụ để tự động chạy backup vào 2h30 sáng bạn gõ

crontab -e

nhập

30 2 * * * /root/backup.sh

Lưu lại bằng:

Ctrl + X --> Y --> Enter

Chạy crontab

service crond start

Khởi động lại

service crond restart

Chạy khi hệ thống khởi động

chkconfig crond on

Xong!

Dương Triều Blog © 2016