温馨提示×

Debian Tomcat日志怎么清理

小樊
54
2026-07-27 17:49:02
栏目: 智能运维

在 Debian 上清理 Tomcat 日志,一般指的是清理以下日志文件(以默认路径为例):

  • /var/log/tomcat9/(Tomcat 9,常见)
  • /var/lib/tomcat9/logs/
  • 或 Tomcat 安装目录下的 logs/(如 /opt/tomcat/logs/

常见日志包括:

  • catalina.out
  • catalina.YYYY-MM-DD.log
  • localhost.YYYY-MM-DD.log
  • manager.YYYY-MM-DD.log
  • host-manager.YYYY-MM-DD.log
  • access_log*.txt

一、手动清理(不推荐直接删除)

1️⃣ 安全清空 catalina.out(推荐)

sudo truncate -s 0 /var/log/tomcat9/catalina.out

或:

sudo sh -c '> /var/log/tomcat9/catalina.out'

⚠️ 不要直接删除 catalina.out,否则 Tomcat 可能仍占用文件句柄,磁盘空间不会释放。


2️⃣ 删除历史日志(确认不再需要)

sudo rm -f /var/log/tomcat9/*.log
sudo rm -f /var/log/tomcat9/*.txt

二、使用 logrotate(✅ 推荐)

Debian 自带 logrotate,Tomcat 通常已有配置。

1️⃣ 查看已有配置

ls /etc/logrotate.d/tomcat*

常见文件:

/etc/logrotate.d/tomcat9

2️⃣ 示例配置(可修改)

/var/log/tomcat9/catalina.out {
    daily
    rotate 7
    compress
    delaycompress
    missingok
    notifempty
    copytruncate
}

说明:

  • rotate 7:保留 7 天
  • compress:压缩旧日志
  • copytruncate:不重启 Tomcat 清空日志

3️⃣ 手动测试

sudo logrotate -vf /etc/logrotate.d/tomcat9

三、定时自动清理(cron)

如果你不想用 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

表示:

  • 每天凌晨 2 点
  • 删除 7 天前的日志

四、防止 catalina.out 无限增长(最佳实践)

✅ 方法 1:使用 logrotate(推荐)

见上文。

✅ 方法 2:修改 logging.properties

限制 Tomcat 自带日志大小(对 catalina.out 效果有限)。


五、检查磁盘是否真的释放

sudo lsof | grep deleted

如果看到 Tomcat 占用已删除文件:

sudo systemctl restart tomcat9

总结(推荐方案)

生产环境最佳实践

  • logrotate 管理 Tomcat 日志
  • 不要直接 rm catalina.out
  • 使用 truncatecopytruncate

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

  • Tomcat 版本
  • 安装方式(apt / 手动)
  • 日志路径

我可以给你一份完全适配你系统的清理方案

0