以下是CentOS Apache日志備份的常見策略,結合工具實現自動化與高效管理:
rotatelogs
:httpd.conf
)中,通過rotatelogs
按天/小時分割日志,例如:ErrorLog "|/usr/sbin/rotatelogs /var/log/httpd/error_log.%Y%m%d 86400"
cronolog
:CustomLog "|/usr/sbin/cronolog /var/log/httpd/access_log.%Y%m%d%H" combined
。tar
命令定期打包日志目錄,例如每天凌晨備份:tar -czvf /backup/apache_logs_$(date +%Y%m%d).tar.gz /var/log/httpd/
。rsync
同步新增日志文件,僅備份變化內容,節省存儲空間:rsync -av --delete /var/log/httpd/ /backup/apache_logs/
。backup_apache_logs.sh
),包含日志分割、壓縮、遠程傳輸等操作,通過cron
定時執行(如每天凌晨2點):#!/bin/bash
BACKUP_DIR=/backup/apache_logs/$(date +%Y%m%d)
mkdir -p $BACKUP_DIR
# 分割并備份日志
cp /var/log/httpd/access_log /backup/apache_logs/access_log_$(date +%Y%m%d)
gzip $BACKUP_DIR/access_log_$(date +%Y%m%d)
# 刪除7天前舊日志
find /backup/apache_logs/ -name "*.gz" -mtime +7 -exec rm -f {} \;
添加到crontab
:0 2 * * * /path/to/backup_apache_logs.sh
。scp
或rsync
將備份文件傳輸至遠程服務器或云存儲,確保數據安全。find
命令,刪除超過7天的壓縮日志,避免存儲占滿:find /backup/apache_logs/ -name "*.tar.gz" -mtime +7 -exec rm -f {} \;
。logrotate
:/etc/logrotate.d/httpd
):/var/log/httpd/*.log {
daily
missingok
rotate 7
compress
delaycompress
notifempty
create 0640 root root
}