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工具进行日志轮转,同时通过配置文件灵活管理日志的保存策略。