zoukankan      html  css  js  c++  java
  • 解决catalina.out文件过大的方法

    用Tomcat的人,绝对都会遇到这样一个问题:catalina.out文件过大。

    它是Tomcat默认生成的日志文件,会随着时间的推移,逐渐增大,不断的增长,甚至达到几G,几十G的大小。由于文件过大,不仅占系统的存储,我们还将无法使用过常规的编辑工具进行查看,严重影响系统的维护工作。

    对此,出现了以下几种解决catalina.out文件过大的方案。

    简洁型
    1.手动版
    每次监控到tomcat的硬盘空间变小达到阈值,手动登陆服务器,切换到tomcat的logs下,手动清空

    echo " " > catalina.out

    2.脚本版
    编写脚本,放入计划任务中,定时清空

    crontab -e 
    0 24 * * * sh /root/qin_catalina.out.sh

    vim qin_catalina.out.sh
    #!/usr/bin/bash 
    echo " " > catalina.out



    技术型
    1.日志切割工具版0.1

    使用cronolog日志切分工具切分Tomcat的catalina.out日志文件

    <1>下载cronolog,并进行安装

    wget http://cronolog.org/download/cronolog-1.6.2.tar.gz (中国服务器可能无法下载或下载缓慢,可先下载到境外服务器上)

    tar zxvf cronolog-1.6.2.tar.gz

    ./cronolog-1.6.2/configure

    make

    make install

    (默认安装在/usr/local/sbin下)

    <2>.配置

    在tomcat/bin/catalian.sh中

    org.apache.catalina.startup.Bootstrap "$@" start >> "$CATALINA_BASE"/logs/catalina.out 2&1 &

    改成:
    org.apache.catalina.startup.Bootstrap"$@" start |/usr/local/sbin/cronolog "$CATALINA_BASE"/logs/catalina.%Y-%m-%d.out >> /dev/null 2>&1 &

    org.apache.catalina.startup.Bootstrap "$@" start 2>&1 | /usr/local/sbin/cronolog "$CATALINA_BASE"/logs/catalina.%Y-%m-%d.out >> /dev/null &

    并注释 touch "$CATALINA_OUT" 

    <3>重启Tomcat
    Tomcat输出日志文件分割成功,输出log文件格式变为:catalina.2017-05-15.out

    1.日志切割工具版0.2

    CentOS6.5后自带logrotate程序,可以解决catalina.out的日志轮转问题

    <1>在/etc/logrotate.d/目录下新建一个tomcat的文件

    cat >/etc/logrotate.d/tomcat

    /usr/local/tomcat/logs/catalina.out{ 要轮转的文件
    copytruncate 创建新的catalina.out副本,截断源catalina.out文件
    daily 每天进行catalina.out文件的轮转
    rotate 7 至多保留7个副本
    missingok 文件丢失了,轮转不报错
    compress 使用压缩
    size 16M 当catalina.out文件大于16MB,就轮转
    }

    <2>当执行以上操作时是自动执行的,也可手动切割

    logrotate /etc/logrotate.conf

    如果只轮转tomcat配置文件,要指定文件

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

    <3>删除要清理的日志

    手工查找需要清理的日志文件

    cd /usr/local/tomcat/logs
    rm -rf catalina.out.4.gz

    2.日志切割脚本版

    使用cron每天来定时备份当前的catalina.out,然后清空他的内容;
    <1>crontab -e

    30 * * * * sh /root/qie_catalina.out.sh

    <2>cat qie_catalina.out.sh 参考脚本

    #!/bin/bash 
    y=`date "+%Y"`
    m=`date "+%m"`
    d=`date "+%d"`

    cp /etc/tomcat/logs/catalina.out /etc/tomcat/logs/`catalina.out.$y_$m_$d`

    echo " " > catalina.out

    3.修改日志级别版

    日志级别:
    SEVERE (highest value) > WARNING > INFO > CONFIG > FINE > FINER > FINEST (lowest value)

    <1>修改conf/logging.properties日志配置文件,将level级别设置成WARNING减少日志的输出。也可以设置成OFF,直接禁用。

    catalina.org.apache.juli.FileHandler.level = WARNING

    catalina.org.apache.juli.FileHandler.directory = ${catalina.base}/logs

    catalina.org.apache.juli.FileHandler.prefix = catalina.

  • 相关阅读:
    jquery ready()的几种实现方法小结
    jQuery之$(document).ready()使用介绍
    jquery的$(document).ready()和onload的加载顺序
    php var_export与var_dump 输出的不同
    PHP获取和操作配置文件php.ini的几个函数
    PHP 网站保存快捷方式的实现代码
    php 图形验证码的3种方法
    面向对象基础01
    提高记忆力
    Python数据分析环境和工具
  • 原文地址:https://www.cnblogs.com/lewisat/p/14708291.html
Copyright © 2011-2022 走看看