Tomcat日志按天生成并定时清理
- 安装cronolog
1、首先查看是否安装cronolog:which cronolog
2、下载安装包,我这下载的是cronolog-1.6.2.tar.gz
3、放到自己有权限的目录下面比如 /home/changhu/soft
4、解压tar -zxvf cronolog-1.6.2.tar.gz
5、进入cronolog安装文件所在目录:cd cronolog-1.6.2
6、运行安装(必须先不改文件进行安装,不然会报找不到文件)
./configure
make
make install
注:此时执行make install报错,提示Error 1
查看错误信息发现需要在 /usr/local/下新建sbin文件夹,但我这个账号没这个权限,修改文件夹下的./configure
7、进入cronolog-1.6.2文件夹,有个configure开头的,打开修改如下内容为普通用户地址,修改保存后再执行一遍安装
./configure
make
make install
嗯,现在应该是安装成功了,在目录下会多出一个sbin文件夹,里面就是cronolog的可执行文件,可以愉快的分割日志了。
二、按天生成日志修改
1、安装成功后,我们就可以按照每天来生成日志了,需要修改tomcat/bin下的catalina.sh,找到下面这行,类似这样的行有2处:修改后第一个变量是cronnolog的地址,第二个变量是日志存放地址
org.apache.catalina.startup.Bootstrap "$@" start \
>> "$CATALINA_OUT" 2>&1 &
修改如下:
org.apache.catalina.startup.Bootstrap "$@" start \
2>&1 | /usr/local/sbin/cronolog /usr/local/tomcat/logs/catalina.%Y-%m-%d.out >>/dev/null &
截图如下:
2、将 touch "$CATALINA_OUT"改为打印内容echo "11111"
3、保存后,重新启动tomcat就可以了
三、定时清理日志文件
1、在bin目录下创建一个定时清理脚本
cd ./bin
touch clean.sh
vi ./clean.sh
2、脚本内容
#!/bin/bash
echo "del file start....."
find /applog/ -mtime +15 -name '*.out' -exec rm -rf {} \;
echo "del file end"
3、给文件授权,并添加可执行文件
chmod +X ./clean.sh
chmod 777 ./clean.sh
4、配置Conrolog定时清理日志,使用crontab -l查看当前任务,在确认没有其他任务执行的情况下,使用crontab -e新建一个定时执行任务,输入如下内容:
#每天早上1点30执行脚本
30 01 * * * /jboss/tomcat-9.0.39/bin/clean.sh
输入完成后,输入wq进行保存
至此清理配置即完成了
5、crontab常用命令如下(可参考该链接 Linux crontab命令.)
#执行文字编辑器来设定时程表,内定的文字编辑器是 VI
crontab -e
#删除目前的时程表
crontab -r
#列出目前的时程表
crontab -l
四、去掉localhost_access_log日志
注释掉tomcat中server.xml中的内容
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />