在 Debian 上清理 Tomcat 日志,一般指的是清理以下日志文件(以默认路径为例):
/var/log/tomcat9/(Tomcat 9,常见)/var/lib/tomcat9/logs/logs/(如 /opt/tomcat/logs/)常见日志包括:
catalina.outcatalina.YYYY-MM-DD.loglocalhost.YYYY-MM-DD.logmanager.YYYY-MM-DD.loghost-manager.YYYY-MM-DD.logaccess_log*.txtsudo truncate -s 0 /var/log/tomcat9/catalina.out
或:
sudo sh -c '> /var/log/tomcat9/catalina.out'
⚠️ 不要直接删除 catalina.out,否则 Tomcat 可能仍占用文件句柄,磁盘空间不会释放。
sudo rm -f /var/log/tomcat9/*.log
sudo rm -f /var/log/tomcat9/*.txt
Debian 自带 logrotate,Tomcat 通常已有配置。
ls /etc/logrotate.d/tomcat*
常见文件:
/etc/logrotate.d/tomcat9
/var/log/tomcat9/catalina.out {
daily
rotate 7
compress
delaycompress
missingok
notifempty
copytruncate
}
说明:
rotate 7:保留 7 天compress:压缩旧日志copytruncate:不重启 Tomcat 清空日志sudo logrotate -vf /etc/logrotate.d/tomcat9
如果你不想用 logrotate,也可以写 cron:
sudo crontab -e
添加:
0 2 * * * find /var/log/tomcat9 -name "*.log" -mtime +7 -delete
0 2 * * * find /var/log/tomcat9 -name "*.txt" -mtime +7 -delete
表示:
见上文。
限制 Tomcat 自带日志大小(对 catalina.out 效果有限)。
sudo lsof | grep deleted
如果看到 Tomcat 占用已删除文件:
sudo systemctl restart tomcat9
✅ 生产环境最佳实践
logrotate 管理 Tomcat 日志rm catalina.outtruncate 或 copytruncate如果你愿意,可以告诉我:
我可以给你一份完全适配你系统的清理方案。