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命令定期检查日志目录大小,及时调整清理策略。