在 Ubuntu 上,Apache 的日志通常位于 /var/log/apache2/ 目录下(如 access.log、error.log 及虚拟主机的日志)。不要直接删除正在写入的日志文件,否则 Apache 可能仍占用原文件句柄,导致磁盘空间不释放。
下面给你几种常用、安全的清理方式。
Ubuntu 默认已为 Apache 配置好 logrotate。
cat /etc/logrotate.d/apache2
sudo logrotate -f /etc/logrotate.d/apache2
这会:
sudo truncate -s 0 /var/log/apache2/access.log
sudo truncate -s 0 /var/log/apache2/error.log
✅ 不会中断 Apache 写入
✅ 立即释放空间
sudo rm -f /var/log/apache2/*.log.*
sudo rm -f /var/log/apache2/*.gz
⚠️ 只删带日期或 .gz 的旧文件
在虚拟主机配置中:
CustomLog /dev/null combined
df -h
lsof | grep deleted
如果有 deleted 的 Apache 进程:
sudo systemctl restart apache2
✅ 日常:交给 logrotate
✅ 紧急:用 truncate -s 0
❌ 不要 rm access.log
如果你用的是 特定虚拟主机 或 Docker / Nginx + Apache,可以告诉我,我给你更精确的命令。