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


    随着项目的运行,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 {} ;

     

    转自:http://blog.51cto.com/lavenliu/1765791

  • 相关阅读:
    禁止IOS双击上滑
    keychains
    GUID 格式化
    Dart基础使用手册
    关于Android 8.0java.lang.SecurityException: Permission Denial错误的解决方法
    Android开发者的Anko使用指南(四)之Layouts
    Android开发者的Anko使用指南(三)之资源
    Android开发者的Anko使用指南(二)之Dialogs
    Android开发者的Anko使用指南(一)之Intent
    hornor8改user模式为debug模式
  • 原文地址:https://www.cnblogs.com/yueminghai/p/8457997.html
Copyright © 2020-2023  润新知