在 Ubuntu 上,Apache 日志的轮转通常是通过 logrotate 来管理的。下面按“原理 + 常见配置 + 常用操作”来说明。
Ubuntu 中:
/etc/logrotate.d/apache2(Apache 专用)/etc/logrotate.conflogrotate 一般每天由 cron / anacron 执行一次。
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
}
daily:每天轮转rotate 14:保留 14 个旧日志compress:压缩旧日志(.gz)delaycompress:延迟一轮再压缩notifempty:日志为空不轮转postrotate:轮转后让 Apache 重新打开日志文件logrotate -d /etc/logrotate.d/apache2
logrotate -f /etc/logrotate.d/apache2
ls -l /etc/cron.daily/logrotate
检查:
systemctl status logrotate
查看是否报错
说明没 reload:
systemctl reload apache2
✅ 正确配置中 postrotate 已包含该操作
/var/log/apache2/*.log {
weekly
rotate 8
compress
missingok
notifempty
create 640 root adm
sharedscripts
postrotate
systemctl reload apache2
endscript
}
Ubuntu 默认 Apache 日志目录:
/var/log/apache2/
包括:
access.logerror.logother_vhosts_access.log如果你愿意,我可以:
直接把你的配置或问题贴出来即可。