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

관련 정보