Si se especifica una configuración de logrotate con los parámetros "tamaño" y "diario", ¿cuál tiene prioridad? ¿Dónde se documenta esto? Me gustaría que estas rotaciones ocurran como una operación OR booleana, es decir, si los registros tienen un día de antigüedad, se rotan, O si son más grandes que un cierto tamaño, también se rotarán. Sin embargo, logrotate actualmente solo utiliza la directiva "size" y parece ignorar la directiva "daily". Logrotate está configurado para ejecutarse cada hora. El sistema operativo es Linux, Red Hat y derivados de Debian.
Además, estoy especificando "diariamente" primero, luego "tamaño" desde el inicio del archivo. No estoy seguro de si el orden importa, pero en cualquier caso, uno tiene que venir primero en el archivo de configuración ...
¡Gracias!
Respuestas:
Si se utiliza la directiva de tamaño , logrotate ignorará las directivas diarias , semanales , mensuales y anuales . Esto no está claro en la documentación cuando ejecuta el
man logrotate
comando. Sin embargo, se puede confirmar en la práctica y se menciona en algunas publicaciones arbitrarias de blog como esta .Existe una directiva llamada minsize que, según la página del manual logrotate, es la única directiva de tamaño que se puede usar junto con las de tiempo. Sin embargo, todavía no es lo que quieres. Usar minsize con daily básicamente dice: rotar los registros diariamente, pero solo cuando tengan al menos # MB de tamaño .
Hasta la fecha, no he encontrado ninguna manera con logrotate para hacer la condición que necesita: rotar todos los días, a menos que el tamaño exceda #MB, en cuyo caso rotar de inmediato . No creo que esto sea compatible con solo las directivas logrotate. Es posible hacer algunas secuencias de comandos inteligentes a través de las directivas de enlace de secuencia de comandos como prerotate , postrotate , firstaction y lastaction .
Actualización :
A partir de logrotate 3.8.1,
maxsize
ytimeperiod
son compatibles juntos, lo que sería la solución ideal. Vea la respuesta a esta publicación: ¿Cómo rotar el registro en función de un intervalo a menos que el registro exceda un cierto tamaño?fuente
maxsize
ytimeperiod
son compatibles. Por serverfault.com/questions/474941/…La primera respuesta de @egg es, según mis experiencias con logrotate, ¡no es cierto!
Si diaria, mensual, ... llegado primero y después de que el tamaño de la Directiva, diaria, mensual, ... será ignorado y el tamaño de la Directiva se aplicará al archivo de registro.
De manera similar, cuando uso por primera vez la directiva de tamaño y luego las directivas diarias, semanales, mensuales y anuales , la directiva de tamaño será ignorada.
fuente
Si agrega Diariamente, rotará cada día incluso si se cumple la condición de Tamaño. Si agrega también la condición de tamaño, puede obtener dos rotaciones en un día, dependiendo de cuán detallado sea el registro.
Si Daily va primero en la secuencia de comandos, entonces Size no se activará
fuente
En realidad, mi página de manual en Red Hat parece ser bastante clara sobre las diferencias entre tamaño y tamaño:
fuente