温馨提示×

centos apache日志怎样清理

小樊
43
2026-10-26 16:14:04
栏目: 智能运维

在 CentOS 上清理 Apache 日志,常见做法有 手动清理 / 截断、使用 logrotate(推荐)、定时任务自动清理。下面按常用程度说明。


一、Apache 日志位置(CentOS)

通常位于:

/var/log/httpd/

常见文件:

  • access_log:访问日志
  • error_log:错误日志
  • ssl_access_log、ssl_error_log(启用 SSL 时)

二、方法一:使用 logrotate(推荐 ✅)

CentOS 默认已为 Apache 配置 logrotate。

1. 查看配置

cat /etc/logrotate.d/httpd

典型内容:

/var/log/httpd/*log {
    missingok
    notifempty
    sharedscripts
    delaycompress
    postrotate
        /bin/systemctl reload httpd.service > /dev/null 2>/dev/null || true
    endscript
}

2. 手动执行一次(测试)

logrotate -f /etc/logrotate.d/httpd

3. 查看效果

ls -lh /var/log/httpd/

会生成类似:

access_log
access_log.1

✅ 安全、不会中断 Apache


三、方法二:手动清空日志(不推荐频繁用)

1. 清空日志文件(保留文件)

# 先重载 Apache
systemctl reload httpd

# 清空日志
> /var/log/httpd/access_log
> /var/log/httpd/error_log

或:

truncate -s 0 /var/log/httpd/access_log

⚠️ 不要直接 rm 日志文件,否则 Apache 可能继续写已删除文件,磁盘不释放。


四、方法三:删除旧日志(谨慎)

# 删除 30 天前的日志
find /var/log/httpd -name "*.log.*" -mtime +30 -delete

或只删压缩日志:

find /var/log/httpd -name "*.gz" -mtime +30 -delete

五、方法四:修改 logrotate 保留策略(常用)

编辑:

vi /etc/logrotate.d/httpd

示例(保留 14 天):

/var/log/httpd/*log {
    daily
    rotate 14
    compress
    missingok
    notifempty
    sharedscripts
    postrotate
        /bin/systemctl reload httpd.service
    endscript
}

测试:

logrotate -d /etc/logrotate.d/httpd

六、常见注意事项

  • ✅ 优先用 logrotate
  • ❌ 不要 rm -f access_log
  • ✅ 清理后确认磁盘释放:df -h
  • ✅ 大流量服务器建议 daily 切割

如果你愿意,我可以:

  • 帮你写 自动清理脚本
  • 根据你的 Apache 版本(2.4 / 2.2) 给精确配置
  • 帮你排查 日志过大原因

直接告诉我即可。

0 踩