以下是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
}