Logrotate는 리눅스에서 로그를 rotation하고 백업하는 데 사용하는 유틸리티이다. 여기서는 logrotate로 사용자 로그(custom log)를 rotation하는 방법에 대해 간략히 설명한다.
• logrotate로 사용자 로그를 rotation하는 방법
1. /etc/logrotate.d에 config file를 추가한다. 여기서는 mywebapp이라는 이름의 config file을 추가한다.
2. /etc/logrotate.d/mywebapp 파일에 다음과 같은 내용을 추가한다.
/var/www/example.com/logs/*.log {
weekly
rotate 4
missingok
notifempty
create 644 root root
postrotate
/bin/systemctl reload httpd.service > /dev/null 2>/dev/null || true
endscript
}
· weekly - 매주 한번 log rotation을 한다.(other options : daily, monthly)
· rotate 4 - 백업 로그파일을 4개까지만 보관한다.
· missingok - 로그파일이 없더라도 에러처리를 하지 않고 그냥 넘어간다.
· notifempty - 로그파일이 비어 있으면(size가 0) log rotation을 하지 않는다.
· create <mode> <owner> <group> - log rotation후에 지정한 permission으로 새로운 파일을 생성한다.
· postrotate - log rotation후에 지정한 명령어들을 실행한다. 위의 예제에서는 apache 웹서버를 restart 하였다.
3. 이제 테스트를 해보자. /etc/logrotate.d 디렉토리에서 sudo logrotate --force mywebapp 명령어를 실행한다. 그리고 /var/www/example.com/logs 디렉토리로 이동하여 log rotation이 잘 되어 있는지 확인한다.