본문 바로가기

운영체제/Linux/Ubuntu

logrotate 에 대한

1. 개요
logrotate 는 시스템에 있는 모든 로그 파일들을 관리할 수 있으며, 이 로그파일들을 자르고, 보관하고, 삭제하고, 압축하고, 메일로 보내주는 등의 다양한 작업을 할 수 있는 로그관리 유틸리티이다.

2. 파일구성

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

/usr/sbin/logrotate : logrotate 의 데몬 프로그램, crond 에 의해 주기적으로 실행

/etc/logrotate.conf : logrotate 가 실행되면서 읽어들인 후 각각의 로그파일들을 이 파일의 설정에 의해 자르거나, 삭제하거나 하는 등의 작업을 수행한다.

/etc/logrotate.d : 각각의 로그파일들에 대한 개별적인 설정파일들이 존제하는 디렉토리이며, 추가로 적용할 로그파일에 대한 설정을 할 수 있다.

3. 설정
설정은 해당 로그와  {} 사이에 값을 설정하는것으로 한다.
log { 
setting value
}

예제
/var/log/messages {
monthly
compress
rotate 2
mail gwg14@naver.com
errors gwg14@naver.com
postroatate
    /bin/kill -HUP 'cat /var/run/syslogd.pid 2> /dev/null' 2> /dev/null || true
endscript
}

/var/log/messages
대상 로그파일. logrotate 에 의해서 작업될 로그파일의 절대경로로 지정

monthly
대상 로그파일을 순환시킬 주기 ( daily 하루 주기, weekly 한주 주기, monthly 한달 주기)

compress
순환된 로그파일이 gzip에 의해서 압축( uncompress 압축하지 않음 )

rotate 2
순환되는 파일 개수 지정( 0부터 시작하게 되며, monthly 로 지정했기때문에 2달간 로그파일이 저장됨)

mail
순환되어 저장된 갯수를 지나게되는 로그파일은 지정된 메일주소로 발송 (nomail 메일을 보내지 않음)

errors
지정된 로그파일의 순환작업시에 에러가 발생하면 지정된 메일로 해당 내용을 발송

postrotate / endscript
지정된 로그파일에 순환작업이 끝나고 난 이후 실행할 작업에 대한 설정( 대부분 순환된 로그 파일의 데몬을 재시작하는 등의 작업이 지정됨)

prerotate / endscript
postrotate 와 반대의 설정으로 순환작업 전에 실행학 작업에 대한 설정

size 100M
순환된 결과 파일 사이즈가 지정한 크기를 점지 않도록 설정


4. 옵션
-f, --force : 강제순환. 
-s, --state <statefile> : 기본 상황파일 대신 지저한 상황 파일을 사용
--usage : 사용법 출력



출처>
http://blog.nextcube.pe.kr/tag/logrotate