Logrotate no elimina registros más antiguos

Logrotate no elimina registros más antiguos

Estoy usando la siguiente configuración para archivar y eliminar registros:

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

}

La ubicación de mis registros tiene registros que se ven así:

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

Que luego se rotan y comprimen para verse así:

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

El problema que tengo es que, después de archivarlos todas las noches, los registros no se eliminan después de 14 días (como debería hacer la directiva maxage).

¿Alguien tiene alguna idea de por qué sucede eso o qué debo cambiar en mi configuración de logrotate?

¡Gracias!

Respuesta1

Desde la página de manual de logrotate:

recuento máximo

Elimine los registros rotados que tengan más de días.La edad sólo se comprueba si se va a rotar el archivo de registro.

audit-2016.09.26.logSólo fue creado una vez y nunca más. Por lo que nunca más se rotará.

En realidad, sus archivos de registro de auditoríaya estan rotados. Parece que sólo deseas comprimirlos y eliminar archivos antiguos. No sé si esto es posible con logrotate. Puede agregar un script de postrotación a su regla original, como:

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

información relacionada