由于Tomcat产出的Catalina.out日志内容过多,因此需要定时切割并删除过期日志
具体步骤
1、安装crontab
#CentOS
yum install cronie -y
#Ubuntu
sudo apt install cron
2、创建sh文件
touch /usr/local/tomcat/apache-tomcat-8.5.45/logs/clear-catalina-out-7-days.sh
3、编辑sh文件
vim /usr/local/tomcat/apache-tomcat-8.5.45/logs/clear-catalina-out-7-days.sh
4、在sh文件中添加以下内容,并保存
#定义tomcat日志文件目录
log_path=/opt/java/tomcat/logs
#定义当前日期
d=`date +%Y-%m-%d`
#定义7天前的日期
d7=`date -d'7 day ago' +%Y-%m-%d`
#跳转到tomcat日志文件夹,复制catalina.out到catalina.out.${d}.log
cd ${log_path} && cp catalina.out ${log_path}/catalina.out.${d}.log
#清空catalina.out文件
echo > catalina.out
#删除7天前的catalina.out.${d7}.log
rm -rf ${log_path}/catalina.out.${d7}.log
find ${log_path} -mtime +7 -name "localhost_access_log.*" -exec rm -rf {} \;
find ${log_path} -mtime +7 -name "localhost.*" -exec rm -rf {} \;
find ${log_path} -mtime +7 -name "manager.*" -exec rm -rf {} \;
find ${log_path} -mtime +7 -name "catalina.*" -exec rm -rf {} \;
find ${log_path} -mtime +7 -name "host-manager.*" -exec rm -rf {} \;
5、添加sh文件执行权限
chmod +x /usr/local/tomcat/apache-tomcat-8.5.45/logs/clear-catalina-out-7-days.sh
6、配置定时器
crontab -e
7、添加以下内容,并保存(:wq)
SHELL = /bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
59 23 * * * ./etc/profile; /bin/sh /usr/local/tomcat/apache-tomcat-8.5.45/logs/clear-catalina-out-7-days.sh
8、重新加载定时器
service crond reload
Linux Crontab 定时任务常用命令
//启动服务
service crond start
//关闭服务
service crond stop
//重启服务
service crond restart
//重新载入配置
service crond reload
//查看crontab服务状态
service crond status