Centos/Linux configuración de logrotate para tamaño máximo de archivo para todos los registros

utilizamos logrotate y funciona todos los días … ahora hemos tenido algunas situaciones en las que los registros han crecido significativamente (lea: gigbaytes) y matar a nuestro servidor. Así que ahora nos gustaría establecer un tamaño máximo de archivo para los registros de ….

puedo agregar esto a la logrotate.conf?

tamaño de 50M

y es, a continuación, se aplican a todos los archivos de registro? O tengo que configurarlo en cada registro de la base?

O cualquier otro tipo de asesoramiento?

(ps. Entiendo que si usted desea ser notificado es el registro crece como se describe y lo que queremos hacer no es lo ideal, pero es mejor que no ser capaz de iniciar la sesión, ya que no hay espacio disponible)

gracias, Sean

InformationsquelleAutor snh_nl | 2013-11-23

2 Kommentare

  1. 61

    Se especifica el tamaño de la archivo de registro para activar la rotación. Por ejemplo size 50M desencadenará una rotación de registro una vez que el archivo es de 50 mb o mayor tamaño. Usted puede utilizar el sufijo M para megabytes, k para kilobytes, y G de gigabytes. Si no hay ningún sufijo se utiliza, va a ir a la media de bytes. Usted puede ver el ejemplo en la final. Hay tres directivas disponibles size, maxsize, y minsize. De acuerdo a 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í está 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í es una explicación para ambos archivos /var/log/httpd/access.log y /var/log/httpd/error.log. Se rotan cada vez crece más de 100 mil en el tamaño y la edad de los registros de los archivos se envían por correo (sin comprimir) a [email protected] después de ir a través de 5 vueltas, en lugar de ser eliminado. El sharedscripts significa que el postrotate secuencia de comandos sólo se ejecuta una vez (después de los registros antiguos se han comprimido), no una vez por cada registro que se hace girar. Tenga en cuenta que las comillas alrededor del nombre de archivo al comienzo de esta sección permite logrotate para rotar los logs con espacios en el nombre. Normal shell citar las reglas se aplican, con ,, y \ caracteres que admite.

  2. 79

    Como se ha mencionado por Zeeshan, el logrotate opciones size, minsize, maxsize son los factores desencadenantes de rotación.

    Para explicar mejor esto. Puede ejecutar logrotate tan a menudo como te gusta, pero a menos que se alcance un umbral tales como el tamaño de archivo en que se alcanza el tiempo pasó, los registros no se pueden girar.

    Las opciones de tamaño de no asegurarse de que su girado registros también son de un tamaño especificado. Para llegar a estar cerca de el tamaño especificado, deberá llamar a la logrotate programa lo suficientemente a menudo. Esto es crítico.

    Para los archivos de registro que se acumulan muy rápidamente (por ejemplo, en los cientos de MB de un día), a menos que usted quiere que ellos sean muy grandes, usted tendrá que asegurarse de logrotate se llama a menudo! esto es crítico.

    Por lo tanto, para detener su disco llenando con varios gigabytes de archivos de registro que usted necesita para asegurarse de logrotate se llama a menudo suficiente, de lo contrario el registro de rotación no funciona tan bien como usted desea.

    en Ubuntu, puede cambiar fácilmente a la hora de rotación por el movimiento de la secuencia de comandos /etc/cron.diario/logrotate /etc/cron.hora/logrotate

    O agregar

    */5 * * * * /etc/cron.daily/logrotate 
    

    A su archivo /etc/crontab. Para que se ejecute cada 5 minutos.

    La size opción ignora la diaria, semanal, mensual opciones de tiempo. Pero minsize & maxsize tomar en cuenta.

    El hombre de la página es un poco confuso allí. He aquí mi explicación.

    minsize gira sólo cuando el archivo ha alcanzado un tamaño adecuado y un determinado período de tiempo ha pasado. por ejemplo, minsize 50MB + diario
    Si el archivo alcanza 50MB antes de tiempo diario marcado más, que va a seguir creciendo hasta el día siguiente.

    maxsize girará cuando el registro alcanza un tamaño de conjunto o la ha pasado el tiempo apropiado.
    por ejemplo, maxsize 50MB + diaria.
    Si el archivo es de 50 mb y no estamos al día siguiente, sin embargo, el registro se va a girar. Si el archivo es de solo 20MB y nos acumulará para el siguiente día, a continuación, el archivo será girado.

    size girará cuando el registro > tamaño de. Independientemente de que cada hora/diario/semanal/mensual se especifica. Así que si usted tiene el tamaño de 100M – significa que cuando su archivo de registro es > 100M el registro será girado si logrotate se ejecuta cuando la condición es verdadera. Una vez que se gira, el registro principal será 0, y una ejecución posterior no hará nada.

    Por lo que en la op del caso. Specficially 50MB max me gustaría usar algo como la siguiente:

    /var/log/logpath/*.log {
        maxsize 50M
        hourly
        missingok
        rotate 8
        compress
        notifempty
        nocreate
    }
    

    Que significa que él había crear 8hrs de los registros de max. Y no sería de 8 de ellos en no más de 50 mb cada uno. Desde que él está diciendo que él está consiguiendo múltiples gigabytes cada día, y suponiendo que se acumulan a un ritmo bastante constante, y maxsize es utilizado va a terminar con alrededor de cerrar al máximo alcanzado para cada archivo. Así que es probable que cerca de 50 mb cada uno. Dado el volumen de construir, él tendría que asegurarse de que logrotate se ejecuta a menudo suficiente para satisfacer el tamaño de destino.

    Ya he puesto por hora allí, tendríamos logrotate para ser ejecutado en un mínimo de cada hora. Pero ya que se acumulan a decir 2 gigabytes por día y queremos 50MB… suponiendo una tasa constante que 83MB por hora. Así que usted puede imaginar si ejecutamos logrotate cada hora, a pesar de la creación maxsize a 50 vamos a terminar con la 83MB del registro en ese caso. Así que en este conjunto de instancias de la ejecución de cada 30 minutos o menos debería ser suficiente.

    Garantizar logrotate se ejecuta cada 30 minutos.

    */30 * * * * /etc/cron.daily/logrotate 
    
    • puede usted explicar liitle más sobre «El tamaño de la opción ignora la diaria, semanal, mensual opciones de tiempo».
    • es casi el mismo como maxsize?
    • Ok, se agregó una explicación para el tamaño
    • Gracias por la explicación. Es mucho mejor que el original en el hombre de la página.
    • Esta respuesta es mucho más sólida que la aceptan respuesta. Gran trabajo!
    • un poco confuso, he intentado añadir, como se dio en su ejemplo, pero no knowwhy su no ejecución. pero cuando he intentado manualmente su trabajo.
    • si es Ubuntu se debe trabajar. Otras Variantes de Linux se puede configurar de forma diferente. O, posiblemente, su demonio crond proceso no se está ejecutando.

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea