1. 定位Tomcat日志文件路径
Tomcat的日志文件默认存储在{CATALINA_HOME}/logs
目录下({CATALINA_HOME}
为Tomcat安装路径,可通过echo $CATALINA_HOME
命令查看)。常见日志文件包括catalina.out
(主日志)、localhost_access_log.*.txt
(访问日志)、manager.log
(Manager应用日志)等。
2. 手动清理旧日志(临时方案)
若需立即清理,可通过以下步骤操作:
sudo systemctl stop tomcat
cd $CATALINA_HOME/logs
.log
文件):find . -type f -name "*.log" -mtime +7 -exec rm -rf {} \;
catalina.out
文件(该文件持续增长,需定期清空):> catalina.out
sudo systemctl start tomcat
3. 使用Logrotate自动轮转与清理(推荐方案)
Logrotate是Linux系统自带的日志管理工具,可实现日志的自动切割、压缩、删除,避免手动操作。
/etc/logrotate.d/tomcat
文件,添加以下内容(根据实际情况修改/path/to/tomcat/logs
为真实路径):/path/to/tomcat/logs/catalina.out {
daily # 每天轮转一次
rotate 7 # 保留7份日志(即删除7天前的)
compress # 压缩旧日志(节省空间)
missingok # 若日志文件不存在,不报错
notifempty # 若日志为空,不轮转
copytruncate # 复制原日志后清空,无需重启Tomcat
}
-d
表示干运行,不实际执行):sudo logrotate -d /etc/logrotate.d/tomcat
若无错误提示,说明配置正确。sudo logrotate -f /etc/logrotate.d/tomcat
/etc/cron.daily/logrotate
)每日自动执行,无需额外配置。4. 编写Shell脚本自动化清理(灵活方案)
若需更定制化的清理逻辑(如同时清理访问日志、Manager日志),可编写脚本并通过cron定时执行:
/opt/tomcat/scripts/clean_tomcat_logs.sh
):#!/bin/bash
LOG_PATH="$CATALINA_HOME/logs"
# 删除7天前的所有.log文件(包括access log、manager log等)
find "$LOG_PATH" -type f -name "*.log" -mtime +7 -exec rm -rf {} \;
# 清空catalina.out
> "$LOG_PATH/catalina.out"
echo "$(date): Tomcat logs cleaned up." >> "$LOG_PATH/cleanup.log"
chmod +x /opt/tomcat/scripts/clean_tomcat_logs.sh
crontab -e
添加以下内容:0 1 * * * /opt/tomcat/scripts/clean_tomcat_logs.sh
注意事项
/backup
)。rotate
参数(如rotate 30
保留30天)。du -sh $CATALINA_HOME/logs
命令定期检查日志目录大小,及时调整清理策略。