Logrotate는 오래된 로그를 삭제하지 않습니다.

Logrotate는 오래된 로그를 삭제하지 않습니다.

다음 설정을 사용하여 로그를 보관하고 삭제합니다.

/path/to/logs/*.log {
    daily
    missingok
    compress
    rotate 4
    nodateext
    nocreate
    maxage 14

}

내 로그 위치의 로그는 다음과 같습니다.

-rwxrwxrwx 1 nobody nobody 21635 Sep 26 13:09 audit-2016.09.26.log

그런 다음 다음과 같이 회전하고 압축합니다.

-rwxrwxrwx 1 nobody  nobody    180485 Sep 10 03:41 audit-2016.09.26.log.1.gz

내가 겪고 있는 문제는 매일 밤 로그를 보관한 후 14일 후에도 로그가 삭제되지 않는다는 것입니다(maxage 지시어에서 예상하는 대로).

왜 이런 일이 발생하는지 또는 logrotate 구성에서 무엇을 변경해야 하는지 아는 사람이 있습니까?

감사해요!

답변1

logrotate 매뉴얼 페이지에서:

가장 큰 금액

며칠이 지난 순환 로그를 삭제합니다.로그 파일을 회전할 때만 연령을 확인합니다.

audit-2016.09.26.log단 한 번만 생성되고 다시는 생성되지 않습니다. 그래서 다시는 회전하지 않습니다.

실제로는 감사 로그 파일입니다이미 회전됨. 압축을 풀고 오래된 파일을 삭제하려는 것 같습니다. logrotate가 이것을 달성할 수 있는지는 모르겠습니다. 예를 들어 원래 규칙에 사후 회전 스크립트를 추가할 수 있습니다.

       postrotate
           find /path/to/logs -name "*.log.1.gz" -mtime +14 -delete
       endscript

관련 정보