tomcat下日志增长处理方式

前言:在tomcat的环境下,日志会随时间的增长而变得庞大,有时候甚至有几十G的大小,打开查看很不方便,所以这里对tomcat的catalina.out日志进行分割,切割工具用的cronolog,并且定期删除之前的一些日志,保障内存大小。

环境:centos7服务器,tomcat版本是8以上(其他版本可能会有不同)

1.安装cronolog(有的服务器自带这个工具)

yum install -y cronolog httpd

2.配置tomcat的切割文件,只用配置tomcat目录下的catalina.sh文件即可

编辑catalina.sh,在tomcat的bin目录下

vim /opt/tomcat2/bin/catalina.sh

修改三处:

(1).找到

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

就是给logs目录下的catalina.out用日期分割

(2).注释掉

touch "$CATALINA_OUT"

(3).找到

org.apache.catalina.startup.Bootstrap "$@" start \

"$CATALINA_OUT" 2>&1 "&"

修改为:

org.apache.catalina.startup.Bootstrap "$@" start 2>&1
| /usr/sbin/cronolog "$CATALINA_OUT" >> /dev/null&

org.apache.catalina.startup.Bootstrap "$@" start 2>&1
| /usr/sbin/cronolog "$CATALINA_OUT" >> /dev/null&

注意:这里的if判断里面有两处,都改了,把之前的那个尽量不要注释,直接删除,然后替换成下面的代码,不过你可以先注释掉试一下,一般也不会错,我在测试的时候可能是注释的不规范,总是执行不成功,后来就把它删除了。然后:wq保存退出以后,再重启服务器查看启动正常,不知道为什么,有时候刚配置完重启失败,但是,我还是重新把之前的代码删除再复制,重复几次就成功了,可能是我的代码不规范。有时复制代码框里面的代码报错,可以复制底下那行代码。

重启后截图:

红框部分输出说明配置成功,有的启动方式不一样,效果不一样,具体看代码是否生效是去看看日志文件是否分割

3.查看是否分割成功

进入tomcat的logs目录

cd /opt/tomcat2/logs
ls

看到这样的文件就说明成功切割了。

4.定期删除

linux自带crontab定时任务工具,直接拿来使用,设置每天凌晨00:00执行删除任务,删除一周前的日志文件

(1).创建一个sh的脚本,用于执行删除,我把它放在了/opt/tomcat/bin目录下,方便管理

cd /opt/tomcat2/bin
vim auto_del_log.sh

(2).将下面代码复制进去,:wq保存退出

!/bin/sh

find /opt/tomcat2/logs/ -mtime +7 -name ".out" -exec rm -rf {} ;
find /opt/tomcat2/logs/ -mtime +7 -name "
.out" -exec rm -rf {} ;

(3).制作定时任务

crontab -e #直接这个该命令,添加一个定时任务计划

然后在里面添加如下代码:

00 00 * * * /opt/tomcat2/bin/auto_del_log.sh >/dev/null 2>&1

这样就设置成功了。每天凌晨回去执行tomcat2/bin,目录下的autoa-del_log.sh的shell脚本执行清除任务。

(4).查看定时任务

crotab -l

日志分割和定期删除完毕!

上一篇:idea实现debug远程调试


下一篇:【web安全】修改和配置tomcat版本信息