Bài viết này mình chia sẻ mọi người cách tạo các bản sao lưu hàng ngày, hàng tuần và hàng tháng trên Ubuntu/Debian một cách tự động. Ở đây mình sử dụng các lệnh tar, find, rsync và cron để tự động hóa lịch sao lưu.
Daily Backup
Lệnh TAR sẽ tạo một kho lưu trữ nén của thư mục /var/www/html trong /home/kien/backup/daily/data. Lệnh find sẽ xóa tất cả các bản sao lưu hàng ngày cũ hơn 7 ngày.
tar -zcf /home/kien/backup/daily/backup-$(date +%Y%m%d).tar.gz -C /var/www/ html find /home/tony/backup/daily/* -mtime +7 -delete
Weekly Backup
Lệnh TAR sẽ tạo một kho lưu trữ nén của thư mục /var/www/html trong /home/kien/backup/weekly. Lệnh find sẽ xóa tất cả các bản sao lưu hàng tuần cũ hơn 31 ngày hoặc 1 tháng.
tar -zcf /home/kien/backup/weekly/backup-$(date +%Y%m%d).tar.gz -C /var/www/ html find /home/kien/backup/weekly/* -mtime +31 -delete
Monthly Backup
Lệnh TAR sẽ tạo một kho lưu trữ nén của thư mục /var/www/html trong /home/kien/backup/monthly. Lệnh find sẽ xóa tất cả các bản sao lưu hàng tháng cũ hơn 365 ngày hoặc 1 năm.
tar -zcf /home/kien/backup/monthly/backup-$(date +%Y%m%d).tar.gz -C /var/www/ html find /home/kien/backup/monthly/* -mtime +365 -delete
Automate with Cron
Bạn có thể tạo một cronjob để sao lưu hàng ngày, hàng tuần và hàng tháng. Mở lệnh crontab -e và thêm như sau:
15 0 * * * sh /home/tony/backup-daily.sh 30 0 * * 1 sh /home/tony/backup-weekly.sh 45 0 1 * * sh /home/tony/backup-monthly.sh
Thực hiện tập lệnh sao lưu hàng ngày hàng ngày vào lúc 12:15 AM
Backup Externally
Tiếp theo, bạn backup sao lưu vào nơi lưu trữ server khác tránh trường hợp bị server có sự cố
rsync -a --delete /home/kien/backup/ root@161.35.143.122:/path/to/remote/backups/
Tạo một cron backup auto
0 2 * * * rsync -a --delete /home/kien/backup/ root@161.35.143.122:/path/to/remote/backups/
Cảm ơn bạn đã trả lời.