본문 바로가기
Linux

logrotate 사용법

by GoodDev 2018. 1. 15.

가. 사용 환경 설정


/etc/logrotate.conf


/etc/logrotate.d


/usr/sbin/logrotate


/var/lib/logrotate.status


나. 기본 설정

/etc/logrotate.d 에 사용하고자 하는 logfile 위치를 입력한다.


# /etc/logrotate.d/project


/home/gooddev/project/logs/output.log

/home/gooddev/project/logs/project.log {

        daily

        rotate 30

        missingok

        dateext

        postrotate

                touch /home/gooddev/project/logs/project.log

                touch /home/gooddev/project/logs/output.log

        endscript

}



  • daily: 로그 파일을 1일에 한 번 백업한다. 다른 옵션으로는 weekly, monthly, yearly가 있다.
  • rotate 30 : 최대 로그 파일 개수를 30개로 제한한다. weekly에 rotate 4면 최대 4주치의 로그만 기록되고 5주째부터는 1주차 로그가 삭제되고 2, 3, 4, 5주차 로그가 저장된다.
  • missingok : 로그 파일이 존재하지 않아도 에러를 발생시키지 않는다.
  • dateext : 로그 파일에 YYYYMMDD 형식의 확장자를 추가한다.
  • postrotate / endscript : rotate 이후에 실행될 명령어를 작성한다. 로그 파일이 백업된 후 서버를 재시작시켜서 새로운 로그 파일에 작성할 수 있도록 한다.
중요 !! 위와 같이 할 경우 로그 파일이 업데이트 되서 프로그램에서 접근할 수 없는 경우가 발생한다. 그럴 경우를 대비하여 copytruncate 옵션을 사용하도록 한다.


다. test


먼저 logrotate.status 파일을 수정한다.

"/home/gooddev/project/logs/project.log" 2018-1-14  <- 해당 날자를 수정


/sbin/logrotate /etc/logrotate.d/project.log  명령어를 수행하여 테스트 한다.





댓글