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

转自:http://blog.csdn.net/liuxiao723846/article/details/52131325


随着项目的运行,Tomcat的日志文件catalina.out的大小日益增大,现在都有好几个GB了。如果我们不做任何处理,catalina.out的文件大小将会持续增加,直到把我们的系统硬盘空间给撑爆不可。


当Tomcat的日志文件catalina.out的大小大于2GB时,Tomcat程序崩溃时将有可能会启动失败并且不会有任何错误信息提示。为了避免该场景的出现,我们要定期轮转catalina.out日志文件。


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

1
2
3
4
5
6
7
8
9
10
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


以上的配置说明:

1
2
3
4
5
6
7
8
/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 {} \;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值