温馨提示×

如何压缩ubuntu apache日志

小樊
49
2026-09-21 19:13:03
栏目: 智能运维

在 Ubuntu 上压缩 Apache 日志,常见有 手动压缩 和 自动轮转压缩(推荐) 两种方式。下面按使用场景说明。


一、使用 logrotate 自动压缩(推荐)

Ubuntu 默认已安装 logrotate,Apache 也自带配置。

1. 查看 Apache 的 logrotate 配置

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 || true
    endscript
}

2. 关键压缩参数说明

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

3. 手动测试 logrotate

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

二、手动压缩已有 Apache 日志

1. 先关闭或重载 Apache(可选)

systemctl reload apache2

2. 压缩日志

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

3. 让 Apache 重新生成新日志

sudo touch /var/log/apache2/access.log
sudo touch /var/log/apache2/error.log
sudo chown www-data:adm /var/log/apache2/*.log

三、使用 zstd 压缩(更高压缩比,可选)

1. 安装 zstd

sudo apt install zstd

2. 修改 logrotate 配置

compress
compresscmd /usr/bin/zstd
compressext .zst
uncompresscmd /usr/bin/unzstd

四、常见路径说明

  • Apache 日志目录:
/var/log/apache2/
  • 主配置文件:
/etc/apache2/apache2.conf

五、建议

✅ 生产环境:直接用 logrotate + compress
❌ 不建议手动 rm 或长期不轮转日志

如果你愿意,可以告诉我:

  • Apache 版本
  • 日志量(GB/天)
  • 是否用了 access.log.1 这类格式

我可以帮你定制一份最优 logrotate 配置。

0 踩