[轉載]Linux下tomcat的catalina.out檔案過大,以及目錄更改解決辦法

candy-yun發表於2016-04-08

原文連結: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的服務;

作者: Candyメ奶糖

本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段宣告,且在文章頁面明顯位置給出原文連線,否則保留追究法律責任的權利。
博文來源廣泛,如原作者認為我侵犯智慧財產權,請儘快給我發郵件
359031282@qq.com聯絡,我將以第一時間刪除相關內容。


相關文章