温馨提示×

ubuntu tomcat日志怎么压缩

小樊
40
2026-09-27 18:26:20
栏目: 智能运维

在 Ubuntu 上压缩 Tomcat 日志,常见做法有 手动压缩、定时任务(cron)自动压缩、利用 logrotate 三种方式。下面按推荐程度给你说明。


一、使用 logrotate(最推荐 ✅)

Ubuntu 自带 logrotate,非常适合管理 Tomcat 日志。

1. 找到 Tomcat 日志目录

一般路径:

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

2. 创建 logrotate 配置

sudo vim /etc/logrotate.d/tomcat

示例配置(以 tomcat9 为例):

/var/log/tomcat9/*.log {
    daily
    missingok
    rotate 14
    compress
    delaycompress
    notifempty
    copytruncate
}

说明:

  • daily:每天轮转
  • compress:压缩(默认 gzip)
  • rotate 14:保留 14 天
  • copytruncate:不重启 Tomcat 直接截断日志(重要)

3. 测试配置

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

强制执行一次:

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

二、使用 cron + tar/gzip(简单手动/自动)

1. 手动压缩

cd /opt/tomcat/logs
tar -czf catalina-$(date +%F).tar.gz catalina.out

或只压缩旧日志:

gzip catalina.out.2024-01-01

2. 定时压缩(cron)

crontab -e

每天凌晨 1 点压缩:

0 1 * * * tar -czf /backup/tomcat-logs-$(date +\%F).tar.gz /opt/tomcat/logs/*.log

三、Tomcat 自带日志滚动(不压缩)

Tomcat 的 logging.properties 支持按大小/日期滚动,但 不会压缩:

1catalina.org.apache.juli.FileHandler.rotatable = true

通常配合 logrotate 使用。


四、常见坑 ⚠️

  1. 不要直接删 catalina.out
    • 用 copytruncate 或重启 Tomcat
  2. 权限问题
    • 确保 logrotate 以 root 运行
  3. 磁盘满
    • 压缩后确认旧日志已清理

推荐方案总结 ✅

场景 方案
生产环境 logrotate
临时处理 gzip / tar
自动备份 cron + tar

如果你告诉我 Tomcat 版本 + 日志路径,我可以直接帮你写一份可用的 logrotate 配置。

0 踩