«

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

本文完结,相关标签: tomcat 日志 catalina

 版权所有:Anglei
 文章标题:Tomcat的catalina.out日志文件按日期分割的方法
 除非注明,本站文章如未特殊说明均为 MAXADA社区知识库 原创,且版权所有,请勿用于任何商业用途。

推荐阅读:

看完后感想如何?

路过(0)

雷人(0)

握手(2)

鲜花(0)

鸡蛋(0)
分享到: