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一下就有各种方法