가. 사용 환경 설정
/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 명령어를 수행하여 테스트 한다.
댓글