• 解决Tomcat catalina.out 不断成长导致档案过大的问题


    方法1—分割流 

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

    cronolog一个对日志切分的小工具,其主页在http://cronolog.org/ (不过发现这个域名已经过期了,可以去这里下载 http://download.csdn.net/detail/wayne173/8096321 ),,我们也可以用它来切分Apache的日志。

    推荐用此方法,方法如下

    1.下载cronolog-1.6.2.tar.gz

    2.安装

    # tar zxvf cronolog-1.6.2.tar.gz
    # cronolog-1.6.2
    # cd configure
    make
    make install

    搞定!

    默认是安装在/usr/local/sbin/下.

    3.配置

    重点来了.注意喽!!!

    在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 &

    修改好了.重启

    #./catalina.sh start

    现去看看劳动成果吧.

    # ls /tomcat/logs/

    就会发现logs下面多了几个如同catalina.2014.10.28.log的文件了,catalina.out文件也是有的,不过大小始终为0.


    方法2—脚本流 

    事情终究不过是个大文件处理的问题,强大的bash来搞定; 
    使用cron每天来备份当前的catalina.out,然后清空他的内容; 

    参考脚本如下: 

    #!/bin/sh 
    y=`date "+%Y"` 
    m=`date "+%m"` 
    d=`date "+%d"` 
    cd /PATH /tomcat/logs 
    cp catalina.out catalina.out.$y$m$d 
    echo 
    > catalina.out 
    exit 
    注意linux系统的cron服务是否启动,是否正常工作,还有脚本的存放路径(原因暂保密) 

    方法3—猥琐流 

    打开bin目录下的catalina.sh文件,终究不过是个bash文件, 

    查找一下,catalina.out总共出现三次; 

    部分截图: 


    shift 

    touch "$CATALINA_BASE"/logs/catalina.out 

    if [ "$1" = "-security" ] ; then 

    echo "Using Security Manager" 

    shift 

    "$_RUNJAVA" $JAVA_OPTS "$LOGGING_CONFIG" $CATALINA_OPTS  

    -Djava.endorsed.dirs="$JAVA_ENDORSED_DIRS" -classpath "$CLASSPATH"  

    -Djava.security.manager  

    -Djava.security.policy=="$CATALINA_BASE"/conf/catalina.policy  

    -Dcatalina.base="$CATALINA_BASE"  

    -Dcatalina.home="$CATALINA_HOME"  

    -Djava.io.tmpdir="$CATALINA_TMPDIR"  

    org.apache.catalina.startup.Bootstrap "$@" start  

    >> "$CATALINA_BASE"/logs/catalina.out 2>&1 & 


    if [ ! -z "$CATALINA_PID" ]; then 

    echo $! > $CATALINA_PID 

    fi 

    else 

    "$_RUNJAVA" $JAVA_OPTS "$LOGGING_CONFIG" $CATALINA_OPTS  

    -Djava.endorsed.dirs="$JAVA_ENDORSED_DIRS" -classpath "$CLASSPATH"  

    -Dcatalina.base="$CATALINA_BASE"  

    -Dcatalina.home="$CATALINA_HOME"  

    -Djava.io.tmpdir="$CATALINA_TMPDIR"  

    org.apache.catalina.startup.Bootstrap "$@" start  

    >> "$CATALINA_BASE"/logs/catalina.out 2>&1 & 
    个人觉得也就是这里是写catalina.out文件的;让他写到一个其他的空设备如何? 

    修改前注意原文件的catalina.sh的备份哟~!! 

    修改以上代码中的 

    >> "$CATALINA_BASE"/logs/catalina.out 2>&1 & 
    为 

    >> /dev/null 2>&1 & 
    保存,然后启动tomcat,目前这个 catalina.out一直是空的了。 

    这个方法是偶自己想到的,个人认为比较勇敢,目前还没有在生产环境测试过。虚拟机测试是通过的。 

    方法4—人流 

    这个方法其实就是linux系统管理员手工去删除,人工操作,简称“人流”; 

    删除之前最好停止tomcat的服务;

  • 相关阅读:
    教你如何开发一个完败Miracast的投屏新功能
    深度评测--安卓免费的银行卡识别SDK,华为 HMS MLKit 和Card IO哪个好?
    别让算法和数据结构拖你职业生涯的后腿
    接入卡片类快服务你必须知道的事情
    手机智眼——智慧视觉
    解放双手的革命——智慧语音
    Android | 超简单集成HMS ML Kit实现最大脸微笑抓拍
    快服务常见TOP3审核雷区,再不过审就要崩溃啦!
    图标新纪元——服务直达
    集成机器学习服务上架华为应用市场指南
  • 原文地址:https://www.cnblogs.com/wayne173/p/4059947.html
Copyright © 2020-2023  润新知