要清理过期的Tomcat日志,您可以采取以下几种方法:
查找日志文件:
使用 df -h
命令检查磁盘空间,确定是否需要清理日志。
使用 cd /
进入根目录,使用 du -sh *
列举出所有目录和文件的占用大小情况,找到占用空间最大的目录。
删除日志文件:
使用 rm -rf 文件名/目录名
命令删除不需要的日志文件。删除前请确保文件路径正确,以免误删。
禁止日志输出:
编辑 catalina.sh
文件,注释掉日志输出路径,将日志输出到 /dev/null
,从而避免生成新的日志文件。
创建清理脚本:
在Tomcat的 bin
目录下创建一个名为 clean.sh
的脚本文件,内容如下:
#!/bin/bash
LOGS_PATH="/path/to/tomcat/logs"
DATE=$(date +%Y-%m-%d)
DAYS=30 # 可以根据需要修改天数
# 复制 catalina.out 按日期命名
cp $LOGS_PATH/catalina.out $LOGS_PATH/catalina.$DATE.out
# 清空 catalina.out
echo "" > $LOGS_PATH/catalina.out
# 删除30天以前的日志文件
find $LOGS_PATH -mtime +$DAYS -name "catalina.*.out" -exec rm -rf {} \;
find $LOGS_PATH -mtime +$DAYS -name "localhost.*.log" -exec rm -rf {} \;
find $LOGS_PATH -mtime +$DAYS -name "localhost_access_log.*.txt" -exec rm -rf {} \;
find $LOGS_PATH -mtime +$DAYS -name "catalina.*.log" -exec rm -rf {} \;
find $LOGS_PATH -mtime +$DAYS -name "manager.*.log" -exec rm -rf {} \;
find $LOGS_PATH -mtime +$DAYS -name "host-manager.*.log" -exec rm -rf {} \;
find $LOGS_PATH -mtime +$DAYS -name "fileservice.log.*" -exec rm -rf {} \;
赋予脚本执行权限:
chmod 777 $LOGS_PATH/clean.sh
设置定时任务:
使用 crontab -e
添加定时任务,例如每天凌晨执行清理脚本:
0 0 * * * /path/to/tomcat/logs/clean.sh
推荐使用Log4j、Logback等成熟的日志框架,通过配置文件灵活管理日志输出,可以自动切割和清理日志文件。
logging.properties
配置文件在Tomcat的 conf
目录下找到 logging.properties
文件,修改以下配置以设置日志保留天数:
handlers = 1catalina.org.apache.juli.AsyncFileHandler, 2localhost.org.apache.juli.AsyncFileHandler, 3manager.org.apache.juli.AsyncFileHandler, 4host-manager.org.apache.juli.AsyncFileHandler
1catalina.org.apache.juli.AsyncFileHandler.level = FINE
1catalina.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
1catalina.org.apache.juli.AsyncFileHandler.prefix = catalina.
1catalina.org.apache.juli.AsyncFileHandler.maxDays = 90
2localhost.org.apache.juli.AsyncFileHandler.level = FINE
2localhost.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
2localhost.org.apache.juli.AsyncFileHandler.prefix = localhost.
2localhost.org.apache.juli.AsyncFileHandler.maxDays = 90
3manager.org.apache.juli.AsyncFileHandler.level = FINE
3manager.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
3manager.org.apache.juli.AsyncFileHandler.prefix = manager.
3manager.org.apache.juli.AsyncFileHandler.maxDays = 90
4host-manager.org.apache.juli.AsyncFileHandler.level = FINE
4host-manager.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
4host-manager.org.apache.juli.AsyncFileHandler.prefix = host-manager.
4host-manager.org.apache.juli.AsyncFileHandler.maxDays = 90
通过以上方法,您可以有效地清理过期的Tomcat日志,优化服务器性能和管理便捷性。
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
推荐阅读:如何清理过期的Apache日志