Tomcat的catalina.out日志文件按日期分割的方法
时间:2024-4-12 10:29 作者:Anglei 分类: WEB应用
本地测试使用的是tomcat9进行的安装测试,经验证默认的tomcat9部署后,相关日志(包含catalina日志)均可按日期自动分割,如果没有进行分割,或是其他版本的tomcat,那么再按照此文方式进行调试。
通常的解决办法是部署LOG4J来解决,但是LOG4J暴露出来的漏洞让我望而却步,于是乎,我采用了脚本来进行对catalina日志文件进行按日期分割,脚本如下所示:
#!/bin/bash
# 获取当前日期
current_date=$(date +"%Y-%m-%d")
# Tomcat日志文件的路径
tomcat_log_path="/var/lib/tomcat9/logs/catalina.out"
# 创建新的日志文件名
new_log_file="/var/lib/tomcat9/logs/catalina-${current_date}.log"
# 如果日志文件存在,并且不是当天创建的,就重命名它
if [ -f "$tomcat_log_path" ] && [[ "$(basename "$tomcat_log_path")" != "catalina-${current_date}.log" ]]; then
mv "$tomcat_log_path" "$new_log_file"
# 创建一个新的catalina.out文件,Tomcat会继续写入这个新文件
touch "$tomcat_log_path"
# 可能需要调整Tomcat的日志输出权限
chown tomcat:tomcat "$tomcat_log_path"
chmod 640 "$tomcat_log_path"
fi
将脚本保存为sh后缀的文件,并给与可执行权限
chmod +x /path/to/your/script.sh
编辑crontab文件设置定时启动
crontab -e
在打开的编辑器中,每一行代表一个定时任务。每个任务由6个或7个字段组成,字段之间由空格分隔。字段的含义如下:
* 分钟(0 - 59)
* 小时(0 - 23)
* 日期(1 - 31)
* 月份(1 - 12 或 JAN-DEC)
* 星期(0 - 7,其中0和7都代表星期日,或使用SUN-SAT)
* 要执行的命令或脚本(可以包含路径)
* (可选)年份(如果你需要按年份指定)例如,如果你想在每天的早上6点执行一个脚本`/path/to/your/script.sh`,你可以添加以下行:
0 0 * * * /path/to/your/script.sh
查看任务执行日志:
grep CRON /var/log/syslog

推荐阅读:
![]() 路过(0) |
![]() 雷人(0) |
![]() 握手(2) |
![]() 鲜花(0) |
![]() 鸡蛋(0) |