catalina.out文件過大

文件過大佔服務器內存太大的時候系統會變的很慢,而後打不開,適當的刪除些tomcat下的log系統就正常了。內存夠了。因此能夠適當的刪除catalina.out的文件,這個文件在每次重啓tomcat的時候會進行更新備份當天的數據,好比在2011-12-15日重啓服務了,服務器上有個catalina12-15.log的文件,若是你覺得這就是從上一次重啓服務到此次重啓服務間得日誌文件保存,那我告訴你也我不清楚,可是如今我清楚了,若是你每次都不清除catalina.out的文件,那每次儘管產生了log的文件,後續的東西也仍是會在out的文件上繼續追加的寫日誌,而後你會發現你重啓了N次了,刪掉了N個log,可是內存仍是沒大多少,這個時候果斷的在停掉服務後刪掉out文件再重啓服務應該就OK了。我用的是最 差勁的那個辦法了。適當的時候就刪掉一些。html

 

Linux下的tomcat產生的日誌文件不象windows下的按時間時間和大小來處理,java

儘管也生成了日誌文件catalina.2009-0x-0x.log類型的文件,可是其中的catalina.out文件依然增大;它爲啥在增大,爲啥在增大,緣由我就不探究了。linux

 

Tomcat的官方文檔,因爲是外文,偶尚未看明白diapache

http://tomcat.apache.org/tomcat-6.0-doc/logging.htmlwindows

聽說是修改某些配置能夠實現,但願高人指點,給個官方的解決方案;tomcat

總是增大也不是辦法,仍是想其餘辦法搞定它爲好:bash

方法1—分割流服務器

使用cronolog工具切分Tomcatcatalina.out日誌文件網絡

cronolog一個對日誌切分的小工具,其主頁在http://cronolog.org/,咱們也能夠用它來切分Apache的日誌。工具

具體的方法,您能夠去google之,這個方法佔網絡搜索結果的主流;

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

相關文章
相關標籤/搜索