logrotate 사용법

logrotate를 사용하여 로그를 관리할 수 있다.

로그 파일에 대해 아무 설정을 하지 않으면 시간이 지나 로그가 쌓이면서 용량이 계속 커지게 될 것이고 로그를 보는 것도 편하지 않을 것이다.

그럴때는 리눅스에서 제공하는 logrotate 기능을 사용하면 큰 어려움 없이 로그를 관리할 수 있다.

예제

1
$ vi /etc/logrotate.d/[rotate_name]
1
2
3
4
5
6
7
8
/path/to/log/somelog.out {
copytruncate
daily
rotate 30
missingok
notifempty
dateext
}
1
2
# log 실행 [루트 권한]
logrotate -f /etc/logrotate.d/[rotate_name]

옵션 설명

Option Description
daily 매일 순환
weekly 매주 순환
monthly 매달 순환
yearly 매년 순환
rotate 파일 갯수 순환될 파일갯수
compress 순환된 로그파일 압축(gzip)
dateext 로그파일에 YYYYMMDD형식의 확장자 추가
errors 메일주소 에러 발생시 지정된 메일주소로 메일발송
ifempty 로그파일이 비어있는 경우 순환(기본값)
noifempty 로그파일이 비어있는 경우 순환하지 않는다
mail 메일주소 순환후 이전 로그파일을 지정된 메일주소로 발송
maxage 일 count로 지정된 일수가 지난 백업 파일 삭제
missingok 로그파일이 없을 경우에도 에러 처리하지 않는다
size 사이즈 순환 결과 파일사이즈가 지정한 크기를 넘지않도록 설정

rotate vs maxage

  • rotate : 파일의 수만 산정하여 로그파일 수를 관리한다.
  • maxage : 기간을 산정하여 로그파일 수를 관리한다.
1
2
3
weekly # 주 마다 rotate
rotate 4 # 로그파일 최대 4개 유지
maxage 60 # 60일 동안만 로그파일 유지

참고

Share