这里小白使用CentOS6U5自带的logrotate程序来解决catalina.out的日志轮转问题。这种方式比较简单。在/etc/logrotate.d/目录下新建一个名为tomcat的文件apache
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以上的配置说明:tomcat
/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时,就轮转 }以上是如何工做的呢?spa
天天晚上crond守护进程会运行在/etc/cron.daily目录中的任务列表;命令行
与logrotate相关的脚本也在/etc/cron.daily目录中。运行的方式为"/usr/bin/logrotate /etc/logrotate.conf";日志
/etc/logrotate.conf文件include了/etc/logrotate.d/目录下的全部文件。还包括咱们上面刚建立的tomcat文件;code
/etc/logrotate.d/tomcat文件会触发/usr/local/apache-tomcat-8.0.28/logs/catalina.out文件的轮转。进程
以上是程序自动完成的,不须要咱们干预。固然了,咱们也可使用手工的方式进行logrotate程序。在命令行进行以下运行:ci
1table
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 {} \;
好了,就到这里了。但愿能够帮到有须要的童鞋。