温馨提示×

debian如何清理tomcat日志

小樊
37
2026-08-12 02:54:58
栏目: 智能运维

在 Debian 系统上清理 Tomcat 日志,通常分为手动清理自动清理(推荐)以及防止日志无限增长三种方式。下面按常见场景说明。


一、Tomcat 日志位置(常见)

默认路径一般为:

/var/log/tomcat9/

或(取决于版本和安装方式):

/opt/tomcat/logs/
/usr/local/tomcat/logs/

常见日志文件:

  • catalina.out(最重要,最容易变大)
  • catalina.2025-01-01.log
  • localhost.log
  • manager.log
  • host-manager.log
  • access_log_*.log

二、手动清理 Tomcat 日志(快速)

1️⃣ 停止 Tomcat(推荐)

sudo systemctl stop tomcat9

不停止也可以,但可能出现“文件已删除但磁盘未释放”的情况。

2️⃣ 删除旧日志

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

3️⃣ 清空 catalina.out(不删除文件)

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

或:

sudo cat /dev/null > /var/log/tomcat9/catalina.out

4️⃣ 启动 Tomcat

sudo systemctl start tomcat9

三、自动清理(推荐 ✅)

方法 1:使用 cron 定时清理

编辑定时任务:

sudo crontab -e

每天凌晨清理 7 天前的日志:

0 3 * * * find /var/log/tomcat9 -type f -mtime +7 -delete

(可选)只清空 catalina.out

0 3 * * * truncate -s 0 /var/log/tomcat9/catalina.out

四、防止 catalina.out 无限增长(非常重要)

✅ 方案 1:使用 logrotate(最推荐)

Debian 通常自带 logrotate,可以配置 Tomcat 日志轮转。

创建或编辑配置:

sudo nano /etc/logrotate.d/tomcat9

示例配置:

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

说明:

  • daily:每天轮转
  • rotate 7:保留 7 份
  • compress:压缩旧日志
  • copytruncate:不重启 Tomcat 直接截断

测试配置:

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

✅ 方案 2:修改 Tomcat logging 配置(logging.properties)

编辑:

sudo nano /etc/tomcat9/logging.properties

限制 catalina.out 输出(例如只输出 WARNING 以上):

1catalina.org.apache.juli.AsyncFileHandler.level = WARNING

⚠️ 注意:Tomcat 本身不会自动切割 catalina.out,必须配合 logrotatecronolog


五、清理后磁盘未释放怎么办?

如果删除日志后 df -h 磁盘没变:

sudo lsof | grep deleted

找到 Tomcat 相关进程,然后重启:

sudo systemctl restart tomcat9

六、推荐组合方案 ✅

生产环境最佳实践

  • 使用 logrotate 管理 catalina.out
  • 使用 cron 定期清理历史 .log
  • 不手动 rm catalina.out

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

  • Tomcat 版本(8 / 9 / 10)
  • 安装方式(apt / 手动解压)
  • 日志路径

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

0