logrotate.conf 샘플

logrotate의 설정디렉토리 /etc/logrotate.d/에 있는 여러개의 파일중 syslog파일의 일부이다.

물론, 이 설정을 /etc/logrotate.conf 파일내에 있어도 마찬가지 결과를 얻을 수 있다.

위의 설정을 설명하면 다음과 같다.

/var/log/messages
대상로그파일, 즉, logrotate에 의해서 작업될 로그파일을 절대패스로 지정해둔 것이다.
그리고, 그 다음의 “{” 부터 “}”까지는 이 로그파일에 대한 개별적인 설정이 된다.

monthly
대상로그파일(/var/log/messages)을 순환시킬 주기이며, monthly이므로 한달에 한번씩 이 파일이 순환(rotate)되게 된다.
뒤에서 설명하게되겠지만 참고로 순환주기에는 daily, weekly, monthly등이 있다. 이에 대한 설명은 뒤에서 자세히 다루게 된다.

compress
순환(rotate)된 파일이 gzip에 의해서 압축이 된다. 반대의 옵션은 nocompress이며 압축을 하지 않게 된다.
(기우겠지만, 순환되어 새로 생성되어 저장되고 있는 로그파일은 압축이 되지 않는다.)

rotate 2
순환되는 파일갯수를 지정한다. 0부터 시작하게되며 위의 예에서 monthly로 지정했기 때문에 2달간 로그파일이 저장되어 있게된다.

mail
순환되어 지정된 갯수를 지나게되는 로그파일은 지정된 메일주소로 메일로 보내지게 된다.
메일을 보내지 않으려면 nomail이라고 하면 된다.

errors
지정된 log파일의 logrotate작업시에 에러가 발생을 하면 지정된 메일주소로 메일을 발송하게 된다.

postrotate/endscript
이것은 지정된 로그파일에 logrotate작업이 끝나고 난 이후에 실행할 작업을 설정해둔 것이다.
대부분 이부분에 설정되는 작업은 rotate된 로그파일의 데몬을 재시작시키는 작업이다.
반대의 작업을 하려면 즉, logrotate작업 전에 실행할 작업이 있다면
postrotate/endscript대신에 prerotate/endscript를 사용하면 된다.

6. logrotate 주요옵션

(참고 : “man logrotate” 해서 보면 logrotate에 대한 옵션이 굉장히 많다. 아래에 소개해드리는 옵션은 자주사용하는 옵션이거나 필자의 견해로 보아 중요하다고 생각되는 옵션을 설명드린 것이므로 이외의 옵션에 대해서 알고자 한다면 man page를 참조바란다. )

-f, –force

강제순환시킨다. 이 옵션은 새로운 항목을 추가한 후에 로그파일을 순환시키거나 옛날 로그파일이 이미 삭제되어 새로운 로그파일이 생성되어 로그기록이 계속되고 있을 경우에 유용한 옵션이다.

-s, –state <statefile>

기본 상황파일인 /var/lib/logrotate.status 파일대신에 지정한 state파일을 사용한다.

–usage

logrotate의 기본 사용법을 간단히 보여준다.

compress

순환되는 로그파일을 gzip으로 압축하게된다. nocompress와는 반대.

nocompress

순환되는 로그파일의 압축을 하지 않는다. 반대는 compress

create mode owner group

순환되어  생성되는 로그파일의 파일퍼미션(mode)과 소유자(owner), 그리고 그룹소유자(group)를 지정한 것이다.
(예, create root 600 wheel)

daily

로그파일을 매일주기로 순환시킨다.

weekly

로그파일을 매주주기로 순환시킨다.

monthly

로그파일을 한달주기로순환시킨다.

errors address

logrotate작업시에 에러가 발생한다면 지정된 메일주소로 메일을 보내게 된다.

extension ext

logrotate 실행후에 순환되어 생성되는 파일의 이름뒤에 확장자로 붙일 확장자명을 지정한다.
만약 compress라는 옵션으로 gzip으로 압축을 했다면 gz라가 확장자 뒤에 붙게된다.
예를 들면 compress라는 옵션과 함께 “extension ext”옵션이 주어졌다면 logrotate실행후에 생성되는 파일은 messages.0.ext.gz과 같은 모양새를 갖게되는 것이다

ifempty

로그파일이 비어있는 경우에도  rotate(순환)을 하게된다. 기본값이다.

notifempty

ifempty와는 반대로 로그파일이 비어있을 경우에는 순환을 하지 않는다.

mail address

logrotate작업후에 이전로그파일을 지정된 메일주소로 메일을 보낸다. (특정한 경우의 로그파일은 보내지 않을 수도 있다. )

postrotate/endscript

logrotate작업 이후에 지정된 작업(스크립트)을 실행한다.

prerotate/endscript

logrotate작업 이전에 지정된 작업(스크립트)을 실행한다.

rotate count

logrotate의 실행결과 순환되는 파일들의 총 갯수라고 이해하자.
즉, logrotate의 결과 삭제되거나 지정된 주소로 메일로 보내지기전의 총 파일갯수라고 이해하면 된다.
그리고 rotate 0로 설정하고 나면 이전파일은 순환과 함께 삭제되어 버린다.

size size

logrotate의 결과 순환된 결과 파일사이즈가 지정한 크기를 넘지 않도록 한다.
지정하는 방법은 100k, 100M등으로 용량단위를 붙여서  지정하면 된다.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.