본문 바로가기
Web Server, WAS/Tomcat

Tomcat 로그 관리 (logrotate.d)

by 아이티.파머 2017. 7. 6.
반응형
Tomcat 로그 관리 (logrotate.d)

구분    위치 및 실행 방법    설명
데몬(위치)    /usr/sbin/logrotate    데몬의 위치 및 데몬프로그램
데몬 설정파일    /etc/logrotate.conf    설정파일
설정디렉토리    /etc/logrotate.d    logrotate에 적용할 각종로그파일들 보관하는 디렉토리
상황파일    /var/lib/logrotate.status    logrotate한 작업내역을 보관한 파일
cron(일단위)    /etc/cron.daily/logrotate    logrotate는 주기적으로 실행이되어야하므로 cron에 의해 일단위로 실행이 됨


1. 30일 지난 로그 삭제

# vi /usr/local/tomcat/logs/tomcat_log.sh ($CATALINA_HOME = /usr/local/tomcat)
#!/bin/sh
#delete files 7 days later
find /usr/local/tomcat/logs -mtime +30 -name '*.log' -exec rm -f {} \;
find /usr/local/tomcat/logs -mtime +30 -name '*.txt' -exec rm -f {} \;



2. 실행 권한 부여

# chmod u+x /usr/local/tomcat/logs/tomcat_log.sh



3. crontab 에 등록
- 스크립트 실행할 시간 지정
# vi /etc/crontab
0 5 * * * root /usr/local/tomcat/logs/tomcat_log.sh


스크립트 경로 앞에 쓴 6개의 필드는 각각 분(minute), 시(hour), 일(day of month), 월(month), 요일(weekday) 을 의미
위와 같이 작성하면 매일 새벽 5시

4. catalina.out -> logrotate 등록
- 매일 30일동안 백업하도록 지정
# vim /etc/logrotate.d/tomcat
/home/knkcorp/server/tomcat8/logs/catalina.out {
    copytruncate
    daily
    rotate 30
    compress
    missingok
    notifempty
    dateext
}

copytruncate : 기존 파일을 백업해서 다른 파일로 이동하고 기존 파일은 지워버리는 옵션
daily : 로그파일을 날짜별로 변환
compress : 지나간 로그파일들을 gzip으로 압축
dateext : 순환된 로그파일의 날짜확장자
missingok : 로그파일이 없더라도 오류를 발생시키지 않음
rotate 30 : 로그 파일은 30개만큼 저장된 다음 제거되거나 메일로 보내짐
notifempty : 파일의 내용이 없으면 새로운 로그 파일을 생성 안함


5. logrotate 테스트

# logrotate -f /etc/logrotate.d/tomcat

# ls -al /usr/local/tomcat/logs/catalina.out*
-rw-r----- 1 knkcorp knkcorp  15015 Jun 26 17:00 catalina.out

-rw-r----- 1 knkcorp knkcorp 104224 Jun 26 16:47 catalina.out-20170626.gz


반응형

'Web Server, WAS > Tomcat' 카테고리의 다른 글

Tomcat 메모리 설정  (0) 2017.07.06
Tomcat bash, bat JAVA_HOME 설정  (2) 2014.03.26
Tomcat 원격 디버깅  (0) 2011.03.30
Virtual Hosting and Tomcat Server.xml crossContext,, Muiltple  (0) 2010.06.28