본문 바로가기
IT/리눅스 이론

tomcat 서비스 catalina.out 날짜별로 생성하여 로그 저장하기

by 꾸꾸웍스 2023. 1. 5.
반응형

tomcat catalina.out 날짜별 생성 썸네일
tomcat catalina.out 날짜별 생성

 

 

톰캣(tomcat)을 새로 설치하거나 기존에 운영 중이었을 때 catalina.sh 파일에서 로그 파일에 대한 설정을 하지 않았다면 해당하는 tomcat 서비스 로그 경로에 catalina.out 파일이 날짜별로 생성되지 않고 하나의 파일에 모여 저장이 됩니다.

 

파일의 용량이 커지게 되어 관리가 어려울 뿐만 아니라 정기적으로 tomcat 서비스를 재기동해야 되기 때문에 catalina.out 파일을 날짜별로 생성하여 관리하는 편이 좋은 방법입니다. catalina.out 파일을 날짜 별로 생성하기 위해 어떠한 부분을 수정하고 어떻게 해야 되는지 알아보겠습니다.

 

 

※ 목차 구성
1) apache rotatelogs 경로 찾기
2) catalina.sh 파일 백업
3) catalina.sh 파일 수정
4) tomcat 서비스 재시작

 

 

 

apache rotatelogs 경로 찾기

tomcat 서비스의 catalina.out 파일을 날짜별로 생성하기 위해 우선적으로 해야 될 것은 아파치 경로의 rotatelogs 파일을 찾는 것입니다. rotatelogs 파일로 하는 방법 외에도 다른 방법들이 존재하지만 이 방법이 가장 간단한 방법입니다. rotatelogs 파일은 아파치 로그를 파이프로 연결할 로그 프로그램으로 로그 시간 또는 최대 크기에 따라 로테이트를 지원합니다.

 

rotatelogs 경로 찾기

root@server # which rotatelogs

apache가 설치되었다면 which명령어로 해당 경로가 나오지만 찾지 못했다면 아래 find 명령어를 이용하여 rotatelogs 파일을 찾습니다.

 

root@server # find / | grep rotatelogs

 

root@server # which rotatelogs
/apps/apache/bin/rotatelogs

 

 

 

반응형

 

 

catalina.sh 파일 백업

catalina.sh 파일을 수정하는 작업을 하기 때문에 수정하기 전 반드시 원본파일을 오늘날짜로 백업합니다.

root@server # ls -l /apps/tomcat_service/bin
...
-rwxr-x--- 1 tomcat tomcat 25398 11 4 10:13 catalina.sh
...

root@server # cd /apps/tomcat_service/bin/

root@server # cp -p catalina.sh catalina.sh_20230104

root@server # ls -l
...
-rwxr-x--- 1 tomcat tomcat 25398 11 4 10:13 catalina.sh
-rwxr-x--- 1 tomcat tomcat 25398 11 16 22:34 catalina.sh_20230104
...

 

 

 

 

catalina.sh 파일 수정

root@server # vim catalina.sh

catalina.sh 파일을 열어 3곳을 수정합니다.

 

 

수정 전) touch "$CATALINA_OUT"
수정 후) #touch "$CATALINA_OUT"
              echo ""

위 해당 내용은 대략 470번대 라인에 위치하고 있으며 라인에 차이는 있을 수 있습니다. touch 명령어에 주석을 하는 이유는 catalina.out 로그 파일을 날짜별로 생성하기 때문에 주석을 하지 않으면 별도로 catalina.out의 빈파일이 생성되기 때문입니다.

 

또한 주석 처리 후 echo 명령어의 빈내용을 넣는 이유는 빈내용을 넣지 않을 시 파일 수정 후 tomcat 서비스를 재기동하였을 때 아래 예시와 같이  if문 코드의 오류가 나기 때문입니다.

root@server # /apps/tomcat_service/bin/shutdown.sh
...
/apps/tomcat_service/bin/catalina.sh: line 475: syntax error near unexpected token `else'
/apps/tomcat_service/bin/catalina.sh: line 475: `	else'

 

 

수정 전) >> "$CATALINA_OUT" 2>&1 "&"
수정 후) 2>&1 "&" | /apps/apache/bin/rotatelogs "$CATALINA_OUT"-%Y-%m-%d 86400 540 &

위 해당내용은 대략 500번대 라인에 위치하고 있으며 수정전 내용은 catalina.sh 파일 내 두 곳이 존재하기 때문에 두 곳 모두 동일하게 수정합니다. 빨간 부분은 아파치 경로를 나타내고 y, m, d의 표현은 날짜(YYYY-mm-dd)를 표현합니다. 86400은 로테이션 단위를 초단위로 표현한 것이고 540은 한국시간의 시간차를 표현한 것입니다.

 

 

catalina.sh 파일 수정 위치

catalina.sh 파일 수정 위치 사진
catalina.sh 파일 수정 위치

 

 

 

 

tomcat 서비스 재시작

catalina.sh 파일 수정이 끝났다면 tomcat 서비스를 재기동해야 새로운 catalina.out 로그 파일이 날짜별로 생성됩니다. 

 

root@server # ls -l /apps/tomcat_service/logs
...
-rw-r----- 1 tomcat tomcat 35376207 11 4 10:13 catalina.out
...

root@server # /apps/tomcat_service/bin/shutdown.sh

root@server # /apps/tomcat_service/bin/startup.sh

root@server # ls -l /apps/tomcat_service/logs
...
-rw-r----- 1 tomcat tomcat 35376207 11 4 10:13 catalina.out
-rw-r----- 1 tomcat tomcat 1885299  11 4 10:13 catalina.out-2023-01-04
...

 

 

 

반응형
그리드형

댓글