以下是Debian Tomcat日志清理的常用技巧:
使用find
命令删除指定天数前的日志文件,例如删除30天前的.log
和.txt
文件:
find /path/to/tomcat/logs/ -type f -mtime +30 -name "*.log" -exec rm -rf {} \;
find /path/to/tomcat/logs/ -type f -mtime +30 -name "*.txt" -exec rm -rf {} \;
注意:需将/path/to/tomcat/logs/
替换为实际日志路径。
/usr/local/bin/clear_tomcat_logs.sh
):#!/bin/bash
LOG_PATH="/path/to/tomcat/logs"
find "$LOG_PATH" -type f -mtime +30 -name "catalina.*.log" -exec rm -rf {} \;
find "$LOG_PATH" -type f -mtime +30 -name "localhost.*.log" -exec rm -rf {} \;
echo "" > "$LOG_PATH/catalina.out" # 清空catalina.out
chmod +x /usr/local/bin/clear_tomcat_logs.sh
crontab -e
设置定时任务(如每天凌晨1点执行):0 1 * * * /usr/local/bin/clear_tomcat_logs.sh
sudo apt-get install logrotate
/etc/logrotate.d/tomcat
:/usr/local/tomcat/logs/catalina.out {
daily
rotate 7
compress
missingok
notifempty
copytruncate # 避免重启Tomcat
}
参数说明:
daily
:每天轮转一次。rotate 7
:保留最近7个日志文件。compress
:压缩旧日志。copytruncate
:清空原日志文件而非删除,避免服务中断。在conf/logging.properties
中调整日志级别或输出格式,减少日志量:
1catalina.org.apache.juli.FileHandler.level = INFO # 降低日志级别
1catalina.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
1catalina.org.apache.juli.FileHandler.prefix = catalina.
logrotate
,避免手动删除导致日志丢失。