logrotate

(Last Updated On: February 12, 2020)

로그를 돌려라~

RHEL 7

yum install logrotate

Example

Nginx

write an service file

/etc/logrotate.d/nginx

 

/var/log/nginx/*.log {
    weekly
    rotate 10
    compress
    dateext
    dateformat -%Y%m%d
    postrotate
    systemctl reload nginx
    endscript
}

daily, weekly, monthly, yearly?

rotate 10 로그파일을 10개남김

compress 압

daily | weekly | monthly | yearly?언제
rotate 10로그파일 10번마다 교체
size 123456123456 바이트마다 로그교체 (weekly, … 보다 우선)
compress로그파일 gzip 압축
dateext로그파일명을 번호 대신 날짜로 붙임
dateformat -%Y%m%d날짜 붙이는 형식을 지정. %Y %m %d 세 변수만 사용가능
prerotate | postrotate
blah_scripts
endscript
로그저장 전/후 사용할 스크립트 지정.
프로그램들이 계속쓰고있던 로그 파일포인터에 쓰려고 하므로, 중간에 로그 파일을 삭제하면 그 이후로 로깅이 안 되는 현상이 있다. 그러니까 프로세스를 죽인다.

 

testing

logrotate –force -v /etc/logrotate.d/