1. logrotate

– logrotate 는 시스템에 있는 모든 로그파일들을 관리할 수 있으며 이들 로그파일들을 자리고( rotate ), 보관하고, 삭제하고, 압축하고, 메일로 보내주는 등의 작업을 할 수 있게 함.

– logrotate 를 이용하여 리눅스서버에서 기록되는 로그파일에 대하여 여러 가지 작업을 자동화 할 수 있음.

– 특정날짜 또는 특정용량이상이 되었을 때 로그파일을 로테이트( 교체 ) 한다. ( size )

– 로테이트작업 직전과 직후에 특정작업을 수행할 수 있다.( prerotste / endscript, postrotate / endscript )

– 로테이트 작업을 하면서 압축을 하거나 하지않을 수 있다.( compress, nocompress )

– 로테이트 후에 보관할 파일의 수를 지정할 수 있다.( rotate )

– 로테이트 후에 생성되는 파일의 소유주와 퍼미션등을 설정할 수 있다.( create )

– 로테이트 후에 생성되는 파일의 확장자를 임의로 지정할 수 있다.( extension )

2. logrotate 파일구성

– logrotate 는 리눅스가 설치되면서 대부분 패키지형태로 기본 설치가 됨.

– 데몬( 위치 ) : /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 가 실행이 되면서 읽어들인 후 각각의 로그파일들을 이 파일의 설정에 의하여 자르거나( rotate ), 삭제하거나, 압축을 하게 됨.

– /etc/logrotate.d 파일은 각각의 로그파일들에 대한 개별적인 설정파일들이 존재하는 디렉토리이며, 추가로 적용할 로그파일에 대한 설정을 여기서 하면 됨.

– /etc/cron.daily/logrotate 파일은 주기적으로 실행이 될 logrotate 를 cron 에 넣어둔 것.

3. logrotate.conf 샘플

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

– monthly : 대상로그파일( /var/log/messages ) 을 순환시킬 주기이며, monthly 이므로 한달에 한번씩 이 파일이 순환( rotate )되게 됨. 순환주기에는 daily, weekly, monthly 등이 있음.

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

– rotate 2 : 순환되는 파일갯수를 지정함. 0 부터 시작하게됨.

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

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

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

4. logrotate 주요옵션

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

– -s, –state < statefile > : 기본 상황파일은 /var/lib/logrotate.status 파일 대신에 지정한 state 파일을 사용함.

– –usage : logrotate 의 기본 사용법을 간단히 보여줌.

– compress : 순환되는 로그파일을 gzip 으로 압축하게 됨. nocompress 와는 반대임.

– nocompress : 순환되는 로그파일의 압축을 하지 않음. 반대는 compress 임.

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

– daily : 로그파일을 일 주기로 순환 시킴.

– weekly : 로그파일을 주 주기로 순환  시킴.

– monthly : 로그파일을 한달 주기로 순환 시킴.

– errors address : logrotate 실행 후에 순환되어 생성되는 파일의 이름 뒤에 확장자로 붙일 확장자명을 지정함. 만약 compress 라는 옵션으로 gzip 으로 압축을 했다면 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.