Trong bài viết này, chúng ta sẽ hướng dẫn cách thiết lập lịch backup (sao lưu) các tệp log định kỳ trên một máy chủ Linux sử dụng công cụ cron
. Việc này giúp bảo vệ dữ liệu log quan trọng, hỗ trợ kiểm tra lỗi và tuân thủ các yêu cầu bảo mật. Chúng ta sẽ sử dụng một kịch bản bash đơn giản để sao lưu và cấu hình cron
để tự động hóa.
Yêu cầu
- Máy chủ Linux (Ubuntu, CentOS, hoặc tương tự).
- Quyền root hoặc sudo.
- Một thư mục chứa tệp log cần backup (ví dụ:
/var/log
). - Không gian lưu trữ đủ trên máy chủ hoặc dịch vụ lưu trữ từ xa (như AWS S3).
Các bước thực hiện backup log định kỳ bằng cron
Bước 1: Tạo kịch bản backup
Tạo một tệp kịch bản bash để sao lưu log.
nano /usr/local/bin/backup_logs.sh
Thêm nội dung sau:
#!/bin/bash
# Định nghĩa biến
LOG_DIR="/var/log"
BACKUP_DIR="/backup/logs"
DATE=$(date +%Y%m%d_%H%M%S)
BACKUP_FILE="${BACKUP_DIR}/logs_backup_${DATE}.tar.gz"
# Tạo thư mục backup nếu chưa tồn tại
mkdir -p "$BACKUP_DIR"
# Sao lưu tệp log
tar -czf "$BACKUP_FILE" -C "$LOG_DIR" .
# Xóa backup cũ (giữ 7 ngày)
find "$BACKUP_DIR" -type f -name "logs_backup_*.tar.gz" -mtime +7 -exec rm -f {} \;
echo "Backup log completed at ${DATE}" >> "${BACKUP_DIR}/backup_log.txt"
Đặt quyền thực thi cho kịch bản:
chmod +x /usr/local/bin/backup_logs.sh
Bước 2: Cấu hình cron
Sử dụng crontab
để lập lịch chạy kịch bản định kỳ (ví dụ: hàng ngày lúc 2h sáng).
crontab -e
Thêm dòng sau vào tệp crontab:
0 2 * * * /usr/local/bin/backup_logs.sh
Ý nghĩa: Chạy kịch bản lúc 2h sáng (00:02) mỗi ngày.
Lưu và thoát.
Bước 3: Kiểm tra và giám sát
Kiểm tra trạng thái cron:
systemctl status cron
Xem log cron để xác minh:
grep CRON /var/log/syslog
Kiểm tra thư mục backup:
ls -lh /backup/logs/
Bước 4: Kiểm tra lịch sử backup
- Xem tệp log backup:
cat /backup/logs/backup_log.txt
Kết luận
Bạn đã thiết lập thành công lịch backup log định kỳ bằng cron
. Việc này đảm bảo dữ liệu log được sao lưu hàng ngày và tự động xóa các bản backup cũ sau 7 ngày. Nếu sử dụng S3, dữ liệu sẽ an toàn hơn trên đám mây. Để nâng cao, bạn có thể thêm thông báo qua email hoặc kiểm tra tính toàn vẹn của tệp backup.
Nếu gặp vấn đề, kiểm tra log hệ thống (/var/log/syslog
) hoặc điều chỉnh thời gian cron theo nhu cầu.
CÔNG TY TNHH VPSMMO
- VP: 8B đường B31, KDC 91B, Phường An Khánh, Quận Ninh Kiều, Thành phố Cần Thơ
- Tel: 0589549338
- Email: info@vpsmmo.vn