设置Tomcat日志自动清理策略主要有以下两种方式:
sudo apt-get install logrotate
(Debian/Ubuntu)或 sudo yum install logrotate
(CentOS)。/etc/logrotate.d/tomcat
,添加以下内容(以catalina.out为例):/usr/local/tomcat/logs/catalina.out {
daily # 每天轮转
rotate 7 # 保留7天日志
compress # 压缩旧日志
missingok # 忽略丢失文件
notifempty # 非空文件才轮转
copytruncate # 清空原文件而非删除
}
sudo logrotate -d /etc/logrotate.d/tomcat
(无错误则生效)。/usr/local/tomcat/bin/clear_tomcat_logs.sh
,内容如下:#!/bin/bash
LOG_DIR="/usr/local/tomcat/logs"
find "$LOG_DIR" -mtime +7 -name "*.log" -exec rm -rf {} \; # 删除7天前的.log文件
find "$LOG_DIR" -mtime +7 -name "catalina.*.out" -exec rm -rf {} \; # 删除7天前的catalina.out文件
sudo chmod +x /usr/local/tomcat/bin/clear_tomcat_logs.sh
。sudo crontab -e
,添加行:0 0 * * * /usr/local/tomcat/bin/clear_tomcat_logs.sh
(每天凌晨执行)。localhost
、manager
等带日期滚动的日志(非catalina.out)。conf/logging.properties
,找到对应日志处理器(如1localhost.org.apache.juli.AsyncFileHandler
),添加或修改:maxDays=7 # 保留7天日志
rotatable=true # 开启按天滚动
chmod +x
)。以上方法可根据系统环境和需求选择,优先使用logrotate实现自动化管理。