温馨提示×

centos如何备份apache日志

小樊
43
2026-10-03 04:37:26
栏目: 智能运维

在 CentOS 上备份 Apache 日志,常见做法有 手动备份、脚本+定时任务、使用 logrotate 几种方式。下面按实用程度给你说明。


一、确定 Apache 日志位置

CentOS 上常见路径:

/var/log/httpd/access_log
/var/log/httpd/error_log

(如果是编译安装,可能在 /usr/local/apache/logs/)

查看配置确认:

grep -i "log" /etc/httpd/conf/httpd.conf

二、手动备份(最简单)

cp -a /var/log/httpd /backup/httpd_logs_$(date +%F)

或打包:

tar czf /backup/httpd_logs_$(date +%F).tar.gz /var/log/httpd

三、写脚本 + crontab(推荐)

1. 创建备份脚本

vim /root/backup_httpd_logs.sh

内容示例:

#!/bin/bash
BACKUP_DIR=/backup/httpd
DATE=$(date +%F)

mkdir -p $BACKUP_DIR
tar czf $BACKUP_DIR/httpd_logs_$DATE.tar.gz /var/log/httpd

# 保留30天
find $BACKUP_DIR -name "*.tar.gz" -mtime +30 -delete

2. 赋权

chmod +x /root/backup_httpd_logs.sh

3. 加入定时任务

crontab -e

每天凌晨 2 点备份:

0 2 * * * /root/backup_httpd_logs.sh

四、使用 logrotate(最规范)

CentOS 默认已用 logrotate 管理 Apache 日志。

配置文件:

/etc/logrotate.d/httpd

示例(系统通常已有):

/var/log/httpd/*log {
    daily
    missingok
    rotate 30
    compress
    delaycompress
    sharedscripts
    postrotate
        systemctl reload httpd > /dev/null 2>&1 || true
    endscript
}

手动测试:

logrotate -d /etc/logrotate.d/httpd   # 测试
logrotate -f /etc/logrotate.d/httpd   # 强制执行

五、备份到远程(进阶)

例如 rsync 到备份服务器:

rsync -az /var/log/httpd backup@192.168.1.100:/backup/

六、建议总结

  • 临时/测试:手动 cp 或 tar
  • 生产环境:logrotate + 定时脚本
  • 重要日志:再同步到远程或对象存储

如果你告诉我:

  • CentOS 版本(6/7/8)
  • Apache 是否 rpm 安装
  • 是否要保留原始日志或压缩

我可以给你更精确的配置。

0 踩