以下是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
,避免手動刪除導致日志丟失。