解决Tomcat日志文件catalina.out文件过大问题 原

这里小白使用CentOS6U5自带的logrotate程序来解决catalina.out的日志轮转问题。这种方式比较简单。在/etc/logrotate.d/目录下新建一个名为tomcat的文件

cat >/etc/logrotate.d/tomcat <<EOF
/usr/local/apache-tomcat-8.0.28/logs/catalina.out{
    copytruncate
    daily
    rotate 7
    missingok
    compress
    size 16M
}
EOF

以上的配置说明:

/usr/local/apache-tomcat-8.0.28/logs/catalina.out{ # 要轮转的文件
    copytruncate # 创建新的catalina.out副本后,截断源catalina.out文件
    daily     # 每天进行catalina.out文件的轮转
    rotate 7   # 至多保留7个副本
    missingok   # 如果要轮转的文件丢失了,继续轮转而不报错
    compress   # 使用压缩的方式(非常有用,节省硬盘空间;一个2~3GB的日志文件可以压缩成60MB左右)
    size 16M   # 当catalina.out文件大于16MB时,就轮转
}

以上是如何工作的呢?

  1. 每天晚上crond守护进程会运行在/etc/cron.daily目录中的任务列表;

  2. 与logrotate相关的脚本也在/etc/cron.daily目录中。运行的方式为"/usr/bin/logrotate /etc/logrotate.conf";

  3. /etc/logrotate.conf文件include了/etc/logrotate.d/目录下的所有文件。还包括我们上面刚创建的tomcat文件;

  4. /etc/logrotate.d/tomcat文件会触发/usr/local/apache-tomcat-8.0.28/logs/catalina.out文件的轮转。

 

 

以上是程序自动完成的,不需要我们干预。当然了,我们也可以使用手工的方式进行logrotate程序。在命令行进行如下运行:

1

logrotate /etc/logrotate.conf

或者只轮转刚刚的tomcat配置文件,可以这样运行:

1

logrotate --force /etc/logrotate.d/tomcat

 

要想获得logrotate程序的更多帮助信息,可以查看其man page,

1

man logrotate

 

可以看一下catalina.out轮转前后的文件大小,

轮转之前:

1

2

3

4

du -sh *

...

2.0G    catalina.out # 未轮转之前的文件大小

...

 

轮转之后的文件大小:

1

2

3

# du -sh catalina.out*

2.0M    catalina.out

60M catalina.out.1.gz # 轮转之后,进行压缩,日志文件变得更小了

 

另外在Tomcat的logs目录,每天都会产生很多日志文件,我们也可以定期手工或使用定时任务来删除7天前的日志文件,这里使用手工的方式进行演示,

1

2

cd /usr/local/apache-tomcat-8.0.28/logs

find -mtime +7 -exec rm -f {} \;

 

好了,就到这里了。希望可以帮到有需要的童鞋。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章