Queremos mostrarte la mejor respuesta que hemos encontrado en todo internet. Nosotros queremos que te sea de mucha utilidad y si deseas aportar cualquier detalle que nos pueda ayudar a crecer puedes hacerlo..
Solución:
Como mencionó Zeeshan, las opciones de logrotate size
, minsize
, maxsize
son desencadenantes de la rotación.
Para explicarlo mejor. Puede ejecutar logrotate con la frecuencia que desee, pero a menos que se alcance un umbral, como el que se haya alcanzado o el tiempo apropiado, los registros no se rotarán.
Las opciones de tamaño no garantizan que los registros rotados también sean del tamaño especificado. Para que se acerquen al tamaño especificado, debe llamar al programa logrotate con la suficiente frecuencia. Esto es fundamental.
Para archivos de registro que se acumulan muy rápidamente (por ejemplo, en cientos de MB al día), a menos que desee que sean muy grandes, deberá asegurarse de que se llame a logrotate con frecuencia. esto es crítico.
Por lo tanto, para evitar que su disco se llene con archivos de registro de varios gigabytes, debe asegurarse de que se llame a logrotate con la suficiente frecuencia; de lo contrario, la rotación del registro no funcionará tan bien como desea.
en Ubuntu, puede cambiar fácilmente a la rotación horaria moviendo el script /etc/cron.daily/logrotate a /etc/cron.hourly/logrotate
O agregar
*/5 * * * * /etc/cron.daily/logrotate
A su archivo / etc / crontab. Para ejecutarlo cada 5 minutos.
los size
La opción ignora las opciones de tiempo diario, semanal y mensual. Pero minize y maxsize lo tienen en cuenta.
La página de manual es un poco confusa allí. Esta es mi explicación.
minsize
gira solo cuando el archivo ha alcanzado un tamaño apropiado y ha pasado el período de tiempo establecido. por ejemplo, tamaño mínimo 50 MB + al día Si el archivo alcanza los 50 MB antes de que se supere el tiempo diario, seguirá creciendo hasta el día siguiente.
maxsize
rotará cuando el tronco alcance un tamaño establecido o haya pasado el tiempo apropiado.
por ejemplo, un tamaño máximo de 50 MB o más al día. Si el archivo tiene 50 MB y aún no estamos en el día siguiente, se rotará el registro. Si el archivo tiene solo 20 MB y pasamos al día siguiente, el archivo se rotará.
size
rotará cuando el registro> tamaño. Independientemente de si se especifica por hora / diario / semanal / mensual. Entonces, si tiene un tamaño de 100M, significa que cuando su archivo de registro es> 100M, el registro se rotará si se ejecuta logrotate cuando esta condición es true. Una vez que se gira, el registro principal será 0 y una ejecución posterior no hará nada.
Así que en el caso de la operación. Específicamente 50 MB como máximo, usaría algo como lo siguiente:
/var/log/logpath/*.log
maxsize 50M
hourly
missingok
rotate 8
compress
notifempty
nocreate
Lo que significa que crearía 8 horas de registros como máximo. Y habría 8 de ellos con no más de 50 MB cada uno. Como está diciendo que está obteniendo varios gigabytes cada día y asumiendo que se acumulan a un ritmo bastante constante, y se usa el tamaño máximo, terminará con cerca del máximo alcanzado para cada archivo. Por lo tanto, es probable que tengan cerca de 50 MB cada uno. Dado el volumen que generan, debería asegurarse de que logrotate se ejecute con la frecuencia suficiente para alcanzar el tamaño objetivo.
Como he puesto las horas allí, necesitaríamos que logrotate se ejecute al menos cada hora. Pero dado que se acumulan para decir 2 gigabytes por día y queremos 50 MB … asumiendo una tasa constante de 83 MB por hora. Entonces, puede imaginar que si ejecutamos logrotate cada hora, a pesar de establecer maxsize en 50, terminaremos con 83 MB de registro en ese caso. Entonces, en este caso, establecer la ejecución en cada 30 minutos o menos debería ser suficiente.
Asegúrese de que logrotate se ejecute cada 30 minutos.
*/30 * * * * /etc/cron.daily/logrotate
Especifica el tamaño de la archivo de registro para activar la rotación. Por ejemplo size 50M
activará una rotación de registro una vez que el archivo tenga un tamaño de 50 MB o más. Puedes usar el sufijo M
por megabytes, k
por kilobytes, y G
por gigabytes. Si no se utiliza ningún sufijo, se entenderá por bytes. Puede consultar el ejemplo al final. Hay tres directivas disponibles size
, maxsize
, y minsize
. Según la página de manual:
minsize size
Log files are rotated when they grow bigger than size bytes,
but not before the additionally specified time interval (daily,
weekly, monthly, or yearly). The related size option is simi-
lar except that it is mutually exclusive with the time interval
options, and it causes log files to be rotated without regard
for the last rotation time. When minsize is used, both the
size and timestamp of a log file are considered.
size size
Log files are rotated only if they grow bigger then size bytes.
If size is followed by k, the size is assumed to be in kilo-
bytes. If the M is used, the size is in megabytes, and if G is
used, the size is in gigabytes. So size 100, size 100k, size
100M and size 100G are all valid.
maxsize size
Log files are rotated when they grow bigger than size bytes even before
the additionally specified time interval (daily, weekly, monthly,
or yearly). The related size option is similar except that it
is mutually exclusive with the time interval options, and it causes
log files to be rotated without regard for the last rotation time.
When maxsize is used, both the size and timestamp of a log file are
considered.
Aquí hay un ejemplo:
"/var/log/httpd/access.log" /var/log/httpd/error.log
rotate 5
mail [email protected]
size 100k
sharedscripts
postrotate
/usr/bin/killall -HUP httpd
endscript
Aquí hay una explicación para ambos archivos. /var/log/httpd/access.log
y /var/log/httpd/error.log
. Se rotan cada vez que crece más de 100k en tamaño, y los archivos de registros antiguos se envían por correo (sin comprimir) a [email protected]
después de pasar por 5 rotaciones, en lugar de ser eliminado. los sharedscripts
significa que el postrotate
El script solo se ejecutará una vez (después de que se hayan comprimido los registros antiguos), no una vez por cada registro que se haya rotado. Tenga en cuenta que las comillas dobles alrededor del primer nombre de archivo al principio de esta sección permiten que logrotate gire los registros con espacios en el nombre. Se aplican las reglas de cotización de shell normales, con ,
, y caracteres admitidos.
Te mostramos reseñas y puntuaciones
Si haces scroll puedes encontrar las notas de otros desarrolladores, tú asimismo eres capaz dejar el tuyo si te apetece.