tomcat默认安装后,会每天会自动切割日志文件,(catalina.2010-10-08.log、catalina.2010-10-09.log、catalina.2010-10-10.log)这样的形式,但是他的catalina.out不清空,任其自由增长,时间长了系统性能急剧下降。
先看下我现在服务器日志内存使用情况
oh my god 日志总共已经9.3G了 再看catalina.out 居然有2.3G
项目才运行一个多月就已经滚了将近10G的日志数据,那么接下来要从两部分来解决
1.catalina.out 不能自由增长,实时更新每天的日志文件即可
2.定时清理半个月以前的数据(考虑到国庆节7天,所以个人感觉保存半个月比较稳妥)
修改tomcat下Catalina.sh文件
将CATALINA_OUT="$CATALINA_BASE"/logs/catalina.out
改为
CATALINA_OUT="$CATALINA_BASE"/logs/catalina`date +%Y%m%d`.out
重启tomcat
log下的Catalina.out 已经不在有日志输出,而是生成了catalina20180614.out这个文件
添加定时任务执行脚本删除半个月以前的数据
新建脚本文件
touch /opt/soft/bin/auto-del-15-days-ago-log.sh
修改执行权限(没有权限的话 会执行失败)
chmod +x auto-del-15-days-ago-log.sh
编辑脚本程序
chmod +x auto-del-15-days-ago-log.sh
编辑内容如下
#!/bin/sh
find /usr/local/software/tomcat-9-honeywell-api/logs/ -mtime +15 -name "*.*" -exec rm -rf {} \;
保存退出
写定时任务
crontab -e
将脚本增加到到crontab中 如下图
该指令含义:每天凌晨1点执行auto-del-15-days-ago-log.sh脚本程序
可以通过tail -f /var/log/cron 查看定时任务执行情况
CROND[31060]: (root) MAIL (mailed 88 bytes of output but got status 0x004b#012) 报错
是什么原因呢。。。原来是我脚本里面的执行路径写错。。。。。
完成以上步骤 大功告成
PS crontab 格式 网络图:
总结如下
1.配置catalina.sh
2.crontab定时任务执行删除脚本指令