Backup database và website tự động mỗi ngày

Backup database và website tự động mỗi ngày
5 (100%) 15 votes

Backup database và website tự động mỗi ngày – Một trong những biện pháp phòng rủi ro khi website bị hack

Có rất nhiều cách để thực hiện backup source cũng như database, hầu hết các CPanel, DirectAdmin đều hỗ trợ setup tự động theo mục đích sử dụng của từng người quản lý. Khi thực hiện đều chọn chế độ backup lưu trữ ngay tại VPS luôn hoặc có thể dùng FTP để chuyển file backup sang một nơi khác lưu trử an toàn phòng trường hợp VPS có sự cố. Một trong những cách backup và lưu trữ website hiện tại PhonuiIT.com đang áp dụng rất tốt là lưu trên Google Drive. Các bạn có thể tham khảo bài viết hướng dẫn sau.

Ở bài này PhonuiIT.com sẽ hướng dẫn các bạn tạo backup database và source website tự động bằng Script. Nào hãy cùng tiến hành thực hiện nào.

Tạo file Backup database và website tự động

Đầu tiên bạn hãy tạo thư mục backups trong /var và nhớ là phải cấp toàn quyền 777

mkdir /var/backups/
chmod 777 /var/backups

Bước tiếp theo tạo 1 file backup.sh trong /root hoặc bất kỳ đâu bạn muốn.

vi /var/backup_phonuiit.sh

Dán nội dung bên dưới vào file sau đó nhớ chỉnh sửa lại thông tin và lưu lại. Sau đó cấp quyền 775 cho file backup_phonuiit.sh

#!/bin/bash
{
 printf "subject:Backup for VPS\nfrom:info@phonuiit.com\n\n"
 mkdir /var/backups/$(date +"%Y-%m-%d")/
 mkdir /var/backups/$(date +"%Y-%m-%d")/phonuiit.com/
 echo "Starting backup database for phonuiit.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")/phonuiit.com/db_$(date +"%Y-%m-%d").sql.gz
 echo "Starting backup files for phonuiit.com..."
 zip -r /var/backups/$(date +"%Y-%m-%d")/phonuiit.com/file_$(date +"%Y-%m-%d").zip /var/www/phonuiit.com/public_html/ -q -x /var/www/phonuiit.com/public_html/wp-content/cache/**\*
} | /usr/sbin/sendmail "info@phonuiit.com"

Bạn hãy sửa đổi các phần màu đỏ  tương ứng với thông tin website của bạn. Vậy là đã thực hiện xong công việc rồi. Bây giờ để chắc chắn hãy kiểm tra xem nó có hoạt động chính xác không bằng cách chạy lệnh:

cd /var
./backup.sh

Backup database và website tự động

Kết quả script đã chạy backup database và website tự động hoạt động ngon lành rồi. Chúng ta sẽ chuyển sang bước setup cho nó chạy tự động.

Tạo crontab để chạy backup database và website tự động

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>

Trong trường hợp này mình muốn cho nó tự động chạy backup vào 1h30 sáng hãy dùng lệnh sau:

crontab -e

Thêm nội dung bên dưới vào

30 1 * * * /var/backup_phonuiit.sh

Khởi động lại dịch vụ crontab

service crond restart

Backup database và website tự động

Thực hiện cho phép crond chạy khi hệ thống khởi động

chkconfig crond on

Vậy là Phonuiit.com đã hướng dẫn các bạn thực hiện thành công việc backup database và website. Điều này thật sự rất quan trọng cho việc đề phòng website bị hacker tấn công. Nhờ có bản sao lưu dự phòng website bạn có thể phục hồi lại nhanh chóng.