• [转载]Linux下tomcat的catalina.out文件过大,以及目录更改解决办法


    原文链接:http://liyan0524.iteye.com/blog/1285644

    方法1—分割流

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

    cronolog一个对日志切分的小工具,其主页在http://cronolog.org/,我们也可以用它来切分Apache的日志。

    推荐用此方法,方法如下

    先google一下.cronolog-1.6.2.tar.gz

    1.下载cronolog-1.6.2.tar.gz

    2.安装

    # tar zxvf cronolog-1.6.2.tar.gz
    # cronolog-1.6.2/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.2006.06.01.log的文件了.


    方法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的服务;

  • 相关阅读:
    排序算法之希尔排序
    javascript Set data structures
    javascript Dictionary data structures
    javascript linkedlist data structures
    关于Java Collections的几个常见问题
    java NIO中的buffer和channel
    编写一个程序,开启 3 个线程,这三个线程的 ID 分别为 A、B、C,每个线程将自己的 ID 在屏幕上打印 10 遍,要求输出的结果必须按顺序显示。如:ABCABCABC…… 依次递归
    Java多线程之Callable接口的实现
    Java并发:volatile内存可见性和指令重排
    Lock和synchronized的区别和使用
  • 原文地址:https://www.cnblogs.com/Candies/p/5368815.html
Copyright © 2020-2023  润新知