项目随着时间变化,tomcat下的日志文件会变的越来越大,全部堆积再catalina.out下,想要查看某日的日志显得非常困难。因此我们需要对这个文件进行定时切割,按每日日期存放。
编写shell脚本
我们在tomcat目录下的bin下编写一个shell脚本,名字可以自己定义,代码如下1
vi back_catalina_out.sh
在里面复制以下内容1
2
3
4
5
6
7#!/bin/bash
log_path=/tomcat/logs
d=`date +%Y-%m-%d`
d30=`date -d'30 day ago' +%Y-%m-%d`
cd ${log_path} && cp catalina.out $log_path/catalina.out.$d.log
echo > catalina.out
rm -rf $log_path/catalina.out.${d30}.log
上述脚本意思就是将当前日志文件复制保存为按日期命名的文件,然后删除30天以前的日志文件
建立定时任务
执行命令进入定时任务编辑1
crontab -e
添加如下内容进去,每天凌晨0点执行我们刚写的shell脚本1
0 0 * * * /tomcat/bin/back_catalina_out.sh
保存即可,这样每天零时就会把当前catalina.out按日期存档(如catalina.out.2017-04-16.log)