温馨提示×

ubuntu如何轮转tomcat日志

小樊
44
2026-09-12 11:38:34
栏目: 智能运维

在 Ubuntu 上轮转 Tomcat 日志,常见有 三种方式,最推荐的是 logrotate(系统级、标准、自动)。下面按实用程度说明。


一、使用 logrotate(推荐 ✅)

Ubuntu 自带 logrotate,Tomcat 日志(catalina.out、localhost.log 等)都适合用它。

1. 创建 logrotate 配置

sudo nano /etc/logrotate.d/tomcat

示例(适用于默认 Tomcat 安装):

/var/log/tomcat*/catalina.out
/var/log/tomcat*/*.log {
    daily
    missingok
    rotate 14
    compress
    delaycompress
    notifempty
    copytruncate
}

2. 参数说明

  • daily:每天轮转
  • rotate 14:保留 14 份
  • compress:压缩旧日志
  • copytruncate:拷贝后清空原文件(Tomcat 不重启也能用)
  • notifempty:空文件不轮转

3. 测试配置

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

二、Tomcat 自带的 Logging(不轮转 catalina.out)

Tomcat 使用 java.util.logging

/etc/tomcat9/logging.properties

特点:

  • ✅ 可轮转 catalina.log
  • 不能轮转 catalina.out

所以 catalina.out 必须用 logrotate 或脚本


三、使用 cron + 脚本(不推荐但可控)

0 0 * * * /opt/tomcat/bin/catalina.sh stop && mv logs/catalina.out logs/catalina.out.$(date +%F) && /opt/tomcat/bin/catalina.sh start

⚠️ 会重启 Tomcat,不适合生产


四、推荐生产方案 ✅

logrotate + copytruncate
✅ 不重启 Tomcat
✅ Ubuntu 原生支持

如果你用的是:

  • Tomcat 9 / 10
  • Docker Tomcat
  • Spring Boot 内嵌 Tomcat

可以告诉我,我可以给你对应版本的配置

0