温馨提示×

Ubuntu如何清理Tomcat日志

小樊
48
2026-08-05 14:24:56
栏目: 智能运维

在 Ubuntu 上清理 Tomcat 日志 通常分为 手动清理自动清理(推荐)日志轮转 三种方式。下面按常见场景说明。


一、Tomcat 日志目录位置

默认情况下,Tomcat 日志在:

/opt/tomcat/logs/
# 或
/var/log/tomcat*/

常见日志文件包括:

文件 说明
catalina.out 主日志(最容易变大)
catalina.2025-01-01.log 按日期的 catalina 日志
localhost.*.log 应用日志
access_log.*.txt 访问日志
manager.*.log Manager 应用日志

二、手动清理(临时方案)

1️⃣ 停止 Tomcat(推荐)

sudo systemctl stop tomcat
# 或
sudo /opt/tomcat/bin/shutdown.sh

2️⃣ 删除旧日志

cd /opt/tomcat/logs
sudo rm -f *.log *.txt

⚠️ 清理 catalina.out 的正确方式(不要直接 rm)

sudo truncate -s 0 catalina.out

或直接:

sudo > catalina.out

✅ 不删除文件,避免 Tomcat 文件句柄异常。


三、自动清理(推荐)

方式一:使用 cron 定期清理

编辑定时任务:

sudo crontab -e

添加(每天凌晨 2 点清理 7 天前的日志):

0 2 * * * find /opt/tomcat/logs -type f -mtime +7 -exec rm -f {} \;

或只清理 .log.txt

0 2 * * * find /opt/tomcat/logs -name "*.log" -mtime +7 -delete
0 2 * * * find /opt/tomcat/logs -name "*.txt" -mtime +7 -delete

四、使用 logrotate(最推荐 ✅)

Ubuntu 自带 logrotate,适合长期管理。

1️⃣ 创建 Tomcat 日志轮转配置

sudo nano /etc/logrotate.d/tomcat

内容示例:

/opt/tomcat/logs/catalina.out {
    daily
    rotate 7
    missingok
    notifempty
    compress
    copytruncate
}

2️⃣ 测试配置

sudo logrotate -d /etc/logrotate.d/tomcat

copytruncate 可以在不重启 Tomcat 的情况下清空日志。


五、防止 catalina.out 无限增长(重要)

方法 1:修改 logging.properties

sudo nano /opt/tomcat/conf/logging.properties

关闭 console 输出(推荐生产环境):

.handlers = 1catalina.org.apache.juli.AsyncFileHandler

方法 2:用 cronolog 切分 catalina.out(老项目常用)

sudo apt install cronolog

修改 catalina.sh

CATALINA_OUT="/opt/tomcat/logs/catalina.%Y-%m-%d.log"

六、快速清理命令(应急)

sudo truncate -s 0 /opt/tomcat/logs/catalina.out
sudo find /opt/tomcat/logs -name "*.log" -mtime +3 -delete

七、建议方案总结 ✅

场景 推荐方式
临时清理 truncate
定期清理 cron + find
长期稳定 logrotate
生产环境 logrotate + 关闭 console 输出

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

  • Tomcat 安装路径
  • 是否生产环境
  • Ubuntu 版本

我可以帮你写一份 完全适配你服务器的清理方案

0