Eliminar archivos con logrotate

13

¿Es posible SOLO borrar los archivos de registro en un directorio usando logrotate sin realmente rotarlos? Tenemos una aplicación que genera registros en el siguiente formato: app.log.DD_MM_YYYY. No tengo éxito con logrotate con la siguiente configuración:

/opt/log/app/app.log.* {
         rotate 0
         missingok
         nomail
}

¿Puede el registro rotar hacer esto o debería escribir un script y colocarlo en cron?

Mejor, -ulian

Iulian
fuente
Si no necesita esos registros, ¿por qué no deshabilita la función de registro en su aplicación?
Deeh
1
Lo siento, pero no puedo contar eso como respuesta, Deeh. Para alimentar su curiosidad, necesitamos esos registros para diferentes operaciones como la depuración, simplemente no queremos mantenerlos allí para que se pudran.
Iulian

Respuestas:

16

En ese caso, es posible que desee utilizar postrotate. En el siguiente ejemplo, postrotate eliminará los archivos que son más antiguos que 1 día después de que se hayan rotado los registros, no dude en modificarlos para que se ajusten a sus necesidades.

/opt/log/app/app.log.* {
        missingok
        nomail
postrotate
        /usr/bin/find /opt/log/app/ -name "app.log.*" -type f -mtime +0 -exec rm {} \;
endscript
}
Deeh
fuente
3

El propósito de logrotate es mantener un número personalizado de archivos de registro en un intervalo de tiempo personalizado. Usaría cron para tu tarea. Más información sobre lo que puede hacer con logrotate aquí: http://www.jamescoyle.net/cheat-sheets/676-logrotate-cheat-sheet

Alex
fuente
2
No publique respuestas de solo enlace para evitar la descomposición del enlace. En su lugar, agregue la información más relevante del enlace a su respuesta o, alternativamente, publique el enlace como un comentario en lugar de una respuesta. Consulte este artículo del centro de ayuda para obtener más información.
Sven