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


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
}

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


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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.