Know/WAS

톰캣로그 일별쌓기

Marine™ 2006. 11. 30. 10:46
반응형
Tomcat5.5버전에는 날짜별로 쌓이도록 지원한다하는데, 5.0버전에는 톰캣 자체에서 지원하는 모듈은 없슴다.

그래서 util(lotatelog,cronolog)등을 이용하여, catalina.sh를 고치는 방법이 있긴한데,

자료를 찾아봤더니, 좀.. 불안하기도 하고, 서버에 유틸을 깔기도 좀 께름칙해서,



걍 간단한 쉘을 하나 만들어서 crontab에 등록을 해놓았습니다.



비스므리한 경우가 생기시는 분은 걍 사용하심 될듯해서 올림다.





1.$CATALINA_HOME/logs/tmp/tmp.log (0byte) 를 만들어둡니다. 이걸이용해서 catalina.out을 0바이트로 바꿉니다.

2. logchange.sh를 만듬다. 어디에 둘지는 며느리맘~, 본쉘입니다.

logchange.sh
-------------------------------------------------------------

#!/bin/sh
Wdate=$(date +%Y%m%d) #오늘날짜가져오기

#해당 톰캣의 로그폴더로 이동합니다. 이부분은 절대경로로 사용하든, 상대경로로 사용하든 알아서 하면됩니다.
cd
cd _JAVA/tomcat5/logs/

# catalina.out 을 오늘날짜로 카피
cp catalina.out catalina_$Wdate.log

# 카피가 성공됐으면, catalina.out을 0바이트로 만듭니다.
# mv나 지우고 다시 만들지 않는이유는, 다 아시듯이 서비스중 hang이 걸리지 않게 하기 위해서입니다.
if [ -f "catalina_$Wdate.log" ]
then
cat ./tmp/tmp.log > catalina.out
echo "create new catalina.out"
else
echo "fail to create new catalina.out because backup fail"
fi

echo $Wdate
-------------------------------------------------------------



3. crontab에 등록. 새벽에 한번씩 돌게 합니다.

$crontab -l <-- 현재 등록된 사용자 계정의 crontab 목록을 보여줍니다.

$crontab -e <-- 사용자 계정의 crontab 의 편집모드로 바꾸어줍니다. 해당시간으로 목록편집





그럼 수고~~
반응형