在 Ubuntu 上压缩 Tomcat 日志,常见做法有 手动压缩、定时任务(cron)自动压缩、利用 logrotate 三种方式。下面按推荐程度给你说明。
Ubuntu 自带 logrotate,非常适合管理 Tomcat 日志。
一般路径:
/var/log/tomcat9/
# 或
/opt/tomcat/logs/
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 直接截断日志(重要)sudo logrotate -d /etc/logrotate.d/tomcat
强制执行一次:
sudo logrotate -f /etc/logrotate.d/tomcat
cd /opt/tomcat/logs
tar -czf catalina-$(date +%F).tar.gz catalina.out
或只压缩旧日志:
gzip catalina.out.2024-01-01
crontab -e
每天凌晨 1 点压缩:
0 1 * * * tar -czf /backup/tomcat-logs-$(date +\%F).tar.gz /opt/tomcat/logs/*.log
Tomcat 的 logging.properties 支持按大小/日期滚动,但 不会压缩:
1catalina.org.apache.juli.FileHandler.rotatable = true
通常配合 logrotate 使用。
copytruncate 或重启 Tomcat| 场景 | 方案 |
|---|---|
| 生产环境 | logrotate |
| 临时处理 | gzip / tar |
| 自动备份 | cron + tar |
如果你告诉我 Tomcat 版本 + 日志路径,我可以直接帮你写一份可用的 logrotate 配置。