温馨提示×

怎样压缩ubuntu apache日志

小樊
46
2026-10-09 11:47:19
栏目: 智能运维

在 Ubuntu 上压缩 Apache 日志,常见做法有 手动压缩、logrotate 自动压缩、定时任务压缩 三种方式。下面按推荐程度说明。


一、使用 logrotate(最推荐 ✅)

Ubuntu 默认已安装 logrotate,Apache 的日志通常已由它管理。

1. 查看 Apache 的 logrotate 配置

cat /etc/logrotate.d/apache2

典型内容示例:

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

2. 关键压缩参数说明

  • compress:启用压缩(默认 gzip)
  • delaycompress:延迟一轮再压缩(避免正在写入的日志)
  • weekly / daily:压缩频率
  • rotate N:保留 N 个历史文件

3. 手动测试 logrotate

logrotate -d /etc/logrotate.d/apache2   # 模拟执行
logrotate -f /etc/logrotate.d/apache2   # 强制执行

二、手动压缩已有日志(临时用)

cd /var/log/apache2
gzip access.log.1
gzip error.log.1

⚠️ 注意:

  • 不要直接压缩正在写入的 access.log
  • 压缩后需 reload Apache:
systemctl reload apache2

三、使用 cron 定时压缩(不推荐重复造轮子)

如果你不想用 logrotate:

crontab -e

添加:

0 3 * * * gzip -f /var/log/apache2/access.log.1

四、进阶:改成按大小压缩

修改 logrotate:

size 100M
daily

表示日志超过 100MB 就轮转并压缩。


五、验证压缩结果

ls -lh /var/log/apache2/

你会看到:

access.log
access.log.1.gz
error.log
error.log.1.gz

总结建议

✅ 直接用 logrotate(系统默认)
❌ 不建议手动 gzip 正在使用的日志

如果你愿意,我可以帮你定制一份适合你服务器流量的 logrotate 配置。

0 踩