关于Linux下tomcat的catalina.out文件过大问题
2016-08-03 00:00
关于Linux下tomcat的catalina.out文件过大问题
2016-08-03现象
Linux下tomcat的catalina.out文件过大。
原因
尽管也生成了日志文件catalina.2009-0x-0x.log类型的文件,但是其中的catalina.out文件依然增大。
解决方法
方法1—分割流:
使用cronolog工具切分Tomcat的catalina.out日志文件,cronolog一个对日志切分的小工具,其主页在httpcronolog.org,我们也可以用它来切分Apache的日志。
方法2—脚本流:
使用cron每天来备份当前的catalina.out,然后清空他的内容;
参考脚本如下:
#!binsh
y=`date +%Y`
m=`date +%m`
d=`date +%d`
cd PATH tomcatlogs
cp catalina.out catalina.out.$y$m$d4
echo catalina.out
exit
注意linux系统的cron服务是否启动,是否正常工作,还有脚本的存放路径。
方法3—猥琐流
打开bin目录下的catalina.sh文件,终究不过是个bash文件,查找一下,catalina.out总共出现三;部分截图:
shift
touch $CATALINA_BASElogscatalina.out
if [ $1 = -security ] ; then
echo Using Security Manager
shift
$_RUNJAVA $JAVA_OPTS $LOGGING_CONFIG $CATALINA_OPTS
-Djava.endorsed.dirs=$JAVA_ENDORSED_DIRS -classpath $CLASSPATH
-Djava.security.manager
-Djava.security.policy==$CATALINA_BASEconfcatalina.policy
-Dcatalina.base=$CATALINA_BASE
-Dcatalina.home=$CATALINA_HOME
-Djava.io.tmpdir=$CATALINA_TMPDIR
org.apache.catalina.startup.Bootstrap $@ start
$CATALINA_BASElogscatalina.out 2&1 &
if [ ! -z $CATALINA_PID ]; then
echo $! $CATALINA_PID
fi
else
$_RUNJAVA $JAVA_OPTS $LOGGING_CONFIG $CATALINA_OPTS
-Djava.endorsed.dirs=$JAVA_ENDORSED_DIRS -classpath $CLASSPATH
-Dcatalina.base=$CATALINA_BASE
-Dcatalina.home=$CATALINA_HOME
-Djava.io.tmpdir=$CATALINA_TMPDIR
org.apache.catalina.startup.Bootstrap $@ start
$CATALINA_BASElogscatalina.out 2&1 &
修改前注意原文件的catalina.sh的备份哟~!!
修改以上代码中的
$CATALINA_BASElogscatalina.out 2&1 &
为
devnull 2&1 &
保存,然后启动tomcat,目前这个 catalina.out一直是空的了。
这个方法个人认为比较勇敢,目前还没有在生产环境测试过。虚拟机测试是通过的。
方法4—人流
这个方法其实就是linux系统管理员手工去删除,人工操作,简称“人流”;
删除之前最好停止tomcat的服务;。