Tạo script sao lưu dữ liệu trên Linux
Giới thiệu
Trong quá trình vận hành máy chủ hay website. Backup dữ liệu luôn là vấn đề hàng đầu được ưu tiên. Việc backup dữ liệu website thường xuyên khiến bạn luôn có phương pháp dự phòng cho trường hợp xấu nhất có thể xảy ra.
Ở bài viết này Nhân Hòa sẽ hướng dẫn các bạn cách tạo script backup dữ liệu tự động theo ngày.
Hướng dẫn thực hiện
Bước 1: SSh vào máy chủ Linux
Để tạo Script Backup dữ liệu trên Linux, việc đầu tiên chúng ta cần làm là SSH vào VPS hoặc máy chủ với quyền root.
Bước 2: Tạo script backup dữ liệu (Source + Database)
Tạo file chứa script.
vi /bin/auto-backup
Thêm nội dung bên dưới vào file đã tạo.
#!/bin/bash
echo "Backup website tubui.xyz"
####### Tạo đường dẫn chứa File Backup
mkdir /home/backup/$(date +"%Y-%m-%d")/
mkdir /home/backup/$(date +"%Y-%m-%d")/tubui.xyz/
####### Backup Database
echo "Starting backup database for tubui.xyz..."
mysqldump --single-transaction --routines --triggers --add-drop-table --extended-insert -u tubt_us -p'Nhanhoa@123' tubt_db | gzip -9 > /home/backup/$(date +"%Y-%m-%d")/tubui.xyz/Database_$(date +"%Y-%m-%d").sql.gz
####### Backup Source
echo "Starting backup files for tubui.xyz..."
zip -r /home/backup/$(date +"%Y-%m-%d")/tubui.xyz/Source_$(date +"%Y-%m-%d").zip /home/tubt/public_html/ -q
echo "Backup Database & Source thanh cong vao luc $(date +"%Y-%m-%d")!"
echo "File backup da duoc luu tai: /home/backup/tubui.xyz"
Chú thích
– Tên website cần backup: tubui.xyz
– Đường dẫn lưu file backup: /home/backup/tubui.xyz
– User Database: tubt_us
– Password: NhanHoa@123
– Tên Database: tubt_db
– Đường dẫn đến source code của website cần backup
– Đường dẫn lưu file backup Source + Database: /home/backup
– Tên file Backup Source: Source.zip
– Tên file Backup Database: Database.sql.zip
Phân quyền cho file auto-backup
chmod +x /bin/auto-backup
Tạo đường dẫn chưa file backup
mkdir /home/backup
Sau khi phân quyền xong, bạn hãy thử gõ tên file script để kiểm tra xem script có hoạt động hay không. Nếu chạy được như hình thì đã cấu hình thành công
Dưới đây là đường dẫn chứa file backup
Bước 3: Tạo Cron để thiết lập thời gian chạy script
Các bạn có thể tìm hiểu thêm về Crontab tại bài viết sau
Tại ví dụ này mình sẽ thiết lập thời gian backup là 1 ngày 1 lần, cú pháp thiết lập Cron sẽ có cấu trúc như sau:
crontab -e
Sau đó thêm cú pháp sau
0 0 * * * auto-backup >> /home/backup/log-backup.txt
Khởi động lại Cron
systemctl restart crond
Sau khi thêm Cron, bạn sử dụng lệnh bên dưới để kiểm tra Cron đã được thêm thành công bằng lệnh sau:
cat /var/spool/cron/root
Hoặc
crontab -l
Nếu kết quả như hình bên dưới là thêm Cron thành công.
Sau đây là các bản backup chạy định kỳ trên VPS của mình.
Bước 4: Tạo Cron xóa Backup định kỳ
Do script này sẽ lưu trữ file trực tiếp trên VPS nên về lâu dài sẽ chiếm dung lượng của VPS. Vì thế chúng ta cần thiết lập Cron để xóa các File backup cũ định kỳ, ví dụ ở đây mình sẽ tạo Cron xóa các File Backup cũ và chỉ giữ lại 3 bản backup gần nhất. Thời gian cron chạy vào lúc 01:00 sáng hàng ngày.
0 1 * * * find /home/backup -type d -mtime +3 -exec rm -rf {} +
systemctl restart crond
Tổng kết
Như vậy Nhân Hòa đã hướng dẫn các bạn cách tạo Cron Backup tự động. Hy vọng bài viết này hữu ích với các bạn. Chúc các bạn thành công !
Nếu trong quá trình thực hiện theo hướng dẫn mà gặp phải vấn đề hoặc có điều gì thắc mắc thì bạn cứ để lại phản hồi bên dưới. Xin chào các bạn và hẹn gặp lại các bạn trong các bài viết sau tại wiki.nhanhoa.com