Debian系统下的Tomcat日志清理可以通过以下几种方法进行:
find
命令可以删除特定时间之前的日志文件。例如,删除30天前的日志文件,可以使用以下命令:find /path/to/tomcat/logs/ -mtime +30 -name "*.log" -exec rm -rf {} \;
find /path/to/tomcat/logs/ -mtime +30 -name "*.txt" -exec rm -rf {} \;
将 /path/to/tomcat/logs/
替换为实际的Tomcat日志目录。创建清理脚本:
创建一个Shell脚本,例如 clear_tomcat_log.sh
,并在其中添加以下内容:
#!/bin/bash
LOGS_PATH="/path/to/tomcat/logs"
find $LOGS_PATH -mtime +30 -name "*.log" -exec rm -rf {} \;
find $LOGS_PATH -mtime +30 -name "*.txt" -exec rm -rf {} \;
echo "" > $LOGS_PATH/catalina.out
将 /path/to/tomcat/logs/
替换为实际的Tomcat日志目录。
赋予脚本执行权限:
chmod 777 /path/to/tomcat/logs/clear_tomcat_log.sh
设置定时任务:
使用 crontab -e
设置定时任务,例如每天凌晨1点执行清理脚本:
0 1 * * * /path/to/tomcat/logs/clear_tomcat_log.sh
安装logrotate:
sudo apt-get install logrotate
配置logrotate:
在 /etc/logrotate.d/
目录下创建或编辑 tomcat
配置文件,例如:
/path/to/tomcat/logs/catalina.out {
daily
rotate 7
compress
missingok
notifempty
}
将 /path/to/tomcat/logs/
替换为实际的Tomcat日志目录。
修改 logging.properties
:
在 Tomcat 的 conf
目录下找到 logging.properties
文件,添加或修改以下配置来指定日志保留的最大天数:
handlers = 1catalina.org.apache.juli.FileHandler, 2localhost.org.apache.juli.FileHandler, 3manager.org.apache.juli.FileHandler
1catalina.org.apache.juli.FileHandler.level = FINE
1catalina.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
1catalina.org.apache.juli.FileHandler.prefix = catalina.
1catalina.org.apache.juli.FileHandler.maxDays = 14
修改 server.xml
:
在 Tomcat 的 conf
目录下找到 server.xml
文件,对 AccessLogValve
添加 maxDays
属性来指定访问日志保留的最大天数:
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="${catalina.base}/logs" prefix="localhost_access_log." suffix=".txt" pattern="%h %l %u %t "%r" %s %b" maxDays="7" />
以上方法可以帮助你有效地管理Debian系统下Tomcat的日志文件,既可以通过手动或脚本自动化清理,也可以使用logrotate工具进行日志轮转,同时通过配置文件灵活管理日志的保存策略。