温馨提示×

ubuntu apache日志怎么分割

小樊
41
2026-09-12 11:28:36
栏目: 智能运维

在 Ubuntu 上,Apache 日志(通常是 access.logerror.log默认并不会自动按天/大小分割,需要借助工具来实现。常见做法有下面几种,按推荐程度排序:


一、使用 logrotate(✅ 推荐,Ubuntu 自带)

Ubuntu 默认已经为 Apache 安装了 logrotate 配置,一般位于:

/etc/logrotate.d/apache2

1. 查看当前配置

cat /etc/logrotate.d/apache2

典型内容类似:

/var/log/apache2/*.log {
    daily
    missingok
    rotate 14
    compress
    delaycompress
    notifempty
    create 640 root adm
    sharedscripts
    postrotate
        systemctl reload apache2 > /dev/null 2>&1
    endscript
}

2. 常见参数说明

  • daily:每天分割
  • weekly:每周
  • monthly:每月
  • rotate 14:保留 14 份
  • compress:压缩旧日志
  • notifempty:空日志不分割
  • postrotate:分割后让 Apache 重新打开日志

3. 手动测试(不真的切割)

logrotate -d /etc/logrotate.d/apache2

4. 立即强制执行一次

logrotate -f /etc/logrotate.d/apache2

这是最标准、最省心的方式


二、Apache 自带 rotatelogs(按大小/时间)

如果你不想用 logrotate,可以在 Apache 配置里直接用 rotatelogs

示例:按天分割 access.log

编辑:

/etc/apache2/sites-available/000-default.conf

修改:

CustomLog "|/usr/bin/rotatelogs /var/log/apache2/access_%Y%m%d.log 86400" combined

或按大小(如 10MB):

CustomLog "|/usr/bin/rotatelogs /var/log/apache2/access_%Y%m%d.log 10M" combined

修改后:

systemctl restart apache2

⚠️ 注意:这种方式 Apache 自己管理日志,不会自动压缩


三、使用 cronolog(较少用)

安装:

apt install cronolog

配置:

CustomLog "|/usr/bin/cronolog /var/log/apache2/access_%Y%m%d.log" combined

现在用得比较少,不推荐新项目使用。


四、常见目录说明(Ubuntu)

/var/log/apache2/
├── access.log
├── error.log
├── access.log.1
├── access.log.2.gz

总结建议

方式 推荐度 说明
logrotate ⭐⭐⭐⭐⭐ 官方推荐,自动压缩
rotatelogs ⭐⭐⭐ 灵活,但需手动管理
cronolog ⭐⭐ 老旧方案

如果你愿意,我可以:

  • 帮你写一套 按天 + 保留 30 天 的 logrotate 配置
  • 或根据你的 访问量 推荐合适的分割策略

0