91名师指路-头部
91名师指路

centos8下安装cronolog对tomcat7日志文件catalina.out进行分割

由于某些原因,现在不支持支付宝支付,如需要购买源码请加博主微信进行购买,微信号:13248254750

一:下载 cronolog。

下载地址:https://centos.pkgs.org/7/epel-x86_64/cronolog-1.6.2-14.el7.x86_64.rpm.html


二:安装cronolog。

我们将下载下来的cronolog-1.6.2-14.el7.x86_64.rpm 放在opt目录下面。

cd /opt
rpm -i cronolog-1.6.2-14.el7.x86_64.rpm

默认安装在 /usr/sbin/cronolog 目录下。


三:验证cronolog是否安装成功,出现安装路径表示安装成功。

which cronolog



四:在tomcat中配置cronolog,在/opt/tomcat-project/bin目录下找到catalina.sh文件,更改里面的配置。

4.1)第一处更改。在195行的位置。

更改前:

if [ -z "$CATALINA_OUT" ] ; then
CATALINA_OUT="$CATALINA_BASE"/logs/catalina.out
fi

更改后:

if [ -z "$CATALINA_OUT" ] ; then
CATALINA_OUT="$CATALINA_BASE"/logs/%Y-%m-%d.catalina.out
fi

更改后的截图:


4.2)第二处,在398行的位置。

更改前:

touch "$CATALINA_OUT"

更改后:

#touch "$CATALINA_OUT"

更改后的截图:


4.3)第三处,在411和420行的位置(两处)。

更改前(注意观察颜色标记的地方):

shift
touch "$CATALINA_OUT"
if [ "$1" = "-security" ] ; then
if [ $have_tty -eq 1 ]; then
echo "Using Security Manager"
fi
shift
eval $_NOHUP "\"$_RUNJAVA\"" "\"$LOGGING_CONFIG\"" $LOGGING_MANAGER $JAVA_OPTS $CATALINA_OPTS \
-Djava.endorsed.dirs="\"$JAVA_ENDORSED_DIRS\"" -classpath "\"$CLASSPATH\"" \
-Djava.security.manager \
-Djava.security.policy=="\"$CATALINA_BASE/conf/catalina.policy\"" \
-Dcatalina.base="\"$CATALINA_BASE\"" \
-Dcatalina.home="\"$CATALINA_HOME\"" \
-Djava.io.tmpdir="\"$CATALINA_TMPDIR\"" \
org.apache.catalina.startup.Bootstrap "$@" start \
>> "$CATALINA_OUT" 2>&1 "&"


else
eval $_NOHUP "\"$_RUNJAVA\"" "\"$LOGGING_CONFIG\"" $LOGGING_MANAGER $JAVA_OPTS $CATALINA_OPTS \
-Djava.endorsed.dirs="\"$JAVA_ENDORSED_DIRS\"" -classpath "\"$CLASSPATH\"" \
-Dcatalina.base="\"$CATALINA_BASE\"" \
-Dcatalina.home="\"$CATALINA_HOME\"" \
-Djava.io.tmpdir="\"$CATALINA_TMPDIR\"" \
org.apache.catalina.startup.Bootstrap "$@" start \
>> "$CATALINA_OUT" 2>&1 "&"


更改后:

shift
#touch "$CATALINA_OUT"
if [ "$1" = "-security" ] ; then
if [ $have_tty -eq 1 ]; then
echo "Using Security Manager"
fi
shift
eval $_NOHUP "\"$_RUNJAVA\"" "\"$LOGGING_CONFIG\"" $LOGGING_MANAGER $JAVA_OPTS $CATALINA_OPTS \
-Djava.endorsed.dirs="\"$JAVA_ENDORSED_DIRS\"" -classpath "\"$CLASSPATH\"" \
-Djava.security.manager \
-Djava.security.policy=="\"$CATALINA_BASE/conf/catalina.policy\"" \
-Dcatalina.base="\"$CATALINA_BASE\"" \
-Dcatalina.home="\"$CATALINA_HOME\"" \
-Djava.io.tmpdir="\"$CATALINA_TMPDIR\"" \
org.apache.catalina.startup.Bootstrap "$@" start 2>&1 \
| /usr/sbin/cronolog "$CATALINA_OUT" >> /dev/null&


else
eval $_NOHUP "\"$_RUNJAVA\"" "\"$LOGGING_CONFIG\"" $LOGGING_MANAGER $JAVA_OPTS $CATALINA_OPTS \
-Djava.endorsed.dirs="\"$JAVA_ENDORSED_DIRS\"" -classpath "\"$CLASSPATH\"" \
-Dcatalina.base="\"$CATALINA_BASE\"" \
-Dcatalina.home="\"$CATALINA_HOME\"" \
-Djava.io.tmpdir="\"$CATALINA_TMPDIR\"" \
org.apache.catalina.startup.Bootstrap "$@" start 2>&1 \
| /usr/sbin/cronolog "$CATALINA_OUT" >> /dev/null&


注意:/usr/sbin/cronolog 是你安装cronolog的目录,可以通过which cronolog命令查看。


五:重启tomcat就可以看到效果了,日志按天进行了分隔,效果如下图所示。


六:定期删除日志文件。

6.1)在这里直接使用linux自带的crontab定时任务工具,设置每天凌晨00:00执行删除任务,删除7天以前的日志文件,编写shell脚本auto_del_log.sh。我们删除 /opt/tomcat-mszl/logs目录下的带.out;.log;.txt后缀的日志文件。我们将auto_del_log.sh放在opt目录下,auto_del_log.sh脚本如下:

#!/bin/bash
#echo "====`date`====" >> /opt/tomcat-mszl/logs
find /opt/tomcat-mszl/logs/ -mtime +7 -name "*.out" -exec rm -rf {} \;
find /opt/tomcat-mszl/logs/ -mtime +7 -name "*.log" -exec rm -rf {} \;
find /opt/tomcat-mszl/logs/ -mtime +7 -name "*.txt" -exec rm -rf {} \;

6.2)我们执行crontab -e将定时任务添加到crontab中。

crontab -e

然后输入命令,表示每天凌晨00:00 执行定时任务。

00 00 * * * /opt/auto_del_log.sh

可以通过crontab -l命令查看定时任务计划

crontab -l

6.3)启动 crontab

/bin/systemctl start crond.service

6.4 常用的命令:

启动定时任务:/bin/systemctl start crond.service
停止定时任务:/bin/systemctl stop crond.service
重启定时任务:/bin/systemctl restart crond.service
查看定时任务状态:/bin/systemctl status crond.service

查看任务:crontab -l
添加任务:crontab -e
删除任务:crontab -r

查看crontab日志,日志路径在/var/log

tail -f /var/log/cron

crontab时间设置:

{minute} {hour} {day-of-month} {month} {day-of-week} {full-path-to-shell-script}

minute: 区间为 0 – 59
hour: 区间为0 – 23
day-of-month: 区间为0 – 31
month: 区间为1 – 12. 1 是1月. 12是12月
Day-of-week: 区间为0 – 7. 周日可以是0或7


参考:

https://blog.csdn.net/leaf_dai/article/details/84562083

https://blog.51cto.com/baihongzhe/2365642

https://blog.51cto.com/u_13178102/2070532

https://blog.csdn.net/unhejing/article/details/79924630



2021-05-06 17:44:48     阅读(1115)

名师出品,必属精品    https://www.91mszl.com

联系博主    
用户登录遮罩层
x

账号登录

91名师指路-底部