[Linux/Log Rotation] Log Rotation
1. Overview
Log 파일의 관리를 위해 Rotation 방법을 알아 보자.
2. Null Copy
유닉스 계열에서 별다른 Tools 없이 사용 가능한 방법이다.
과거에 어디선가 null copy 시에 프로세스가 해당 파일의 원본을 계속 물고 있어, 해당 프로세스를 재기동 하기 전까지 file size가 release 되지 않았던 기억이 있지만, 버그일 것이다.
crontab 에 등록 하면 된다.
1
2
# (min:0~59) (hour:0~23) (day:0~31) (month:1~12) (day of the week:0/7-sunday ~ 6-saturday)
0 5 * * * /usr/bin/cp catalina.out catalina.out.$(/usr/bin/date +%Y%m%d_%H%M%S) && /usr/bin/cat /dev/null > catalina.out
3. logrotate
logrotate 설치가 되어 있어야 한다.
Tomcat WAS를 예시로 설정 하였으며, logrotate_tomcat9.conf 파일을 생성한다.
1
2
3
4
5
6
7
8
9
10
/opt/ssw/tomcat9/logs/catalina.out {
rotate 90
create 600 dhkim dhkim
dateext
daily
compress
missingok
notifempty
copytruncate
}
주요 옵션 : 매일 압축 보관 및 최대 90개 보관, 압축 보관한 파일명 뒤에 date
crontab 에 등록 하면 된다.
1
2
# (min:0~59) (hour:0~23) (day:0~31) (month:1~12) (day of the week:0/7-sunday ~ 6-saturday)
0 5 * * * /usr/sbin/logrotate -f /opt/ssw/tomcat9/logs/logrotate_tomcat9.conf
crontab 에 등록하지 않고 검증하려면 그냥 실행하면 된다. Just Do It!
1
/usr/sbin/logrotate -f /opt/ssw/tomcat9/logs/logrotate_tomcat9.conf
crontab에 등록하지 않고, /etc/logrotate.d 에 넣어두기만 해도, 매일 logroate daemon 이 처리한다.