tomcat的catalina.out一直增长,太大了会造成tomcat异常,需要对其日志进行切割每天生成一个文件,并且删除7天前的文件。
以下是代码片段:
#!/bin/bash
cd `dirname $0`
d=`date +%Y%m%d`
d7=`date -d’7 day ago’ +%Y%m%d`
cd ../logs/
cp catalina.out catalina.out.${d}
echo "" > catalina.out
rm -rf catalina.out.${d7}
放到tomcat的bin目录中,然后crontab每天执行。
@Panblack 指出上诉方法有误, 修正的方法为: http://www.cnblogs.com/panblack/archive/2013/05/30/split_tomcat_catalina_out.html
================================================
这里说的分割tomcat catalina.out,不仅脚本错了,方法也不对。tomcat如果不重启就无法写入新的catalina.out。简单的脚本如下:
#!/bin/bash
thedate=`date --rfc-3339=date`
/opt/tomcat/bin/shutdown.sh
mv /opt/tomcat/logs/catalina.out /opt/tomcat/logs/catalina.out.${thedate}
/opt/tomcat/bin/startup.sh
脚本放到 /etc/cron.daily,每天生成类似 catalina.out.2013-05-30 的文件,定期删除旧日志的方法回头研究。
================================================
续二:
李旸stone:这个方案不好,还得重启tomcat,用cronolog好了。修改catalina.sh: 2>&1 |/usr/local/sbin/cronolog "$CATALINA_BASE/logs/catalina.%Y-%m-%d.out" &,具体参考 http://t.cn/zH6Tz3E google一下就有各种方法
觉得文章有用?立即:和朋友一起 共学习 共进步!
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习