在 Ubuntu 上压缩 Apache 日志,常见有 手动压缩 和 自动轮转压缩(推荐) 两种方式。下面按使用场景说明。
Ubuntu 默认已安装 logrotate,Apache 也自带配置。
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
}
compress:启用压缩(默认 .gz)delaycompress:延迟一轮再压缩(避免正在写入的日志被压)daily / weekly:压缩频率rotate N:保留 N 个旧日志logrotate -d /etc/logrotate.d/apache2 # 模拟执行
logrotate -f /etc/logrotate.d/apache2 # 强制执行
systemctl reload apache2
cd /var/log/apache2
sudo gzip access.log
sudo gzip error.log
sudo touch /var/log/apache2/access.log
sudo touch /var/log/apache2/error.log
sudo chown www-data:adm /var/log/apache2/*.log
sudo apt install zstd
compress
compresscmd /usr/bin/zstd
compressext .zst
uncompresscmd /usr/bin/unzstd
/var/log/apache2/
/etc/apache2/apache2.conf
✅ 生产环境:直接用 logrotate + compress
❌ 不建议手动 rm 或长期不轮转日志
如果你愿意,可以告诉我:
access.log.1 这类格式我可以帮你定制一份最优 logrotate 配置。