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