温馨提示×

debian tomcat日志怎样清理

小樊
40
2026-09-01 08:40:19
栏目: 智能运维

在 Debian 系统上,Tomcat 日志清理一般有几种常见做法,下面按“安全 → 自动 → 根本”的顺序说明。


一、Tomcat 日志在哪(先确认)

默认位置通常是:

/var/log/tomcat9/      # Debian 包安装(tomcat9/tomcat10)
或者
/opt/tomcat/logs/      # 手动安装

常见日志文件:

  • catalina.out ← 最容易变大
  • catalina.YYYY-MM-DD.log
  • localhost.log
  • host-manager.log
  • manager.log
  • access_log_*.log

二、手动清理(临时用)

# 停止 Tomcat(推荐)
systemctl stop tomcat9

# 清空而不是删除(避免 Tomcat 占用文件)
: > /var/log/tomcat9/catalina.out

# 或删除旧日志
rm -f /var/log/tomcat9/*.log.*

# 启动
systemctl start tomcat9

⚠️ 不要直接 rm catalina.out 而 Tomcat 在运行,可能导致日志写失效。


三、使用 logrotate(Debian 推荐 ✅)

Debian 自带 logrotate,最规范。

1. 查看已有配置

ls /etc/logrotate.d/
cat /etc/logrotate.d/tomcat9

2. 如果没有,手动建一个

sudo nano /etc/logrotate.d/tomcat

示例(适用于 tomcat9):

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

说明:

  • copytruncate:不重启 Tomcat 也能截断日志(关键)
  • rotate 7:保留 7 天
  • compress:压缩旧日志

3. 测试

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

四、限制 catalina.out 大小(推荐)

方法 1:用 logrotate(上面已讲)

方法 2:Tomcat 自带 Logging(JULI)

编辑:

/etc/tomcat9/logging.properties

限制示例(示例性):

1catalina.org.apache.juli.AsyncFileHandler.maxDays = 7

五、Access Log 清理(访问日志)

Tomcat server.xml 中:

<Valve className="org.apache.catalina.valves.AccessLogValve"
       directory="logs"
       prefix="access_log"
       suffix=".txt"
       rotatable="true" />

可加:

maxDays="30"

六、定时自动清理(简单粗暴)

crontab -e

每天清理 30 天前日志:

0 3 * * * find /var/log/tomcat9 -name "*.log*" -mtime +30 -delete

七、总结建议 ✅

场景 建议
Debian 包安装 用 logrotate
catalina.out 太大 logrotate + copytruncate
长期运维 限制 maxDays
手动安装 自己配 logrotate

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

  • Tomcat 版本(9 / 10)
  • 安装方式(apt 还是压缩包)
  • 日志主要是 catalina.out 还是 access log

我可以给你精确配置

0