GNU/Linux >> Tutoriales Linux >  >> Linux

¿Rotación de registro de stdout?

Como alternativa, puede canalizar la salida a través de herramientas diseñadas con el objetivo principal de mantener conjuntos de archivos de registro rotados automáticamente y limitados por tamaño, como:

  • El multilog de Dan Bernstein de daemontools
  • multilog de Bruce Guenter de daemontools-encore
  • s6-log de Laurent Bercot de s6
  • El svlogd de Gerrit Pape de runit
  • El tinylog de Wayne Marshall del perpetrador
  • Mi cyclog de nosh

Herramientas para luego procesar multilog Los conjuntos de archivos de registro de formato incluyen, entre otros:

  • multilog-watch de Russ Allbery
  • logrange
  • El multilog-stamptail de Paul Kremer
  • Mi follow-log-directories de nosh
  • Mi export-to-rsyslog de nosh

Lecturas adicionales

  • Jonathan de Boyne Pollard (2015). "Inicio sesión". La familia daemontools . Respuestas frecuentes.
  • Jonathan de Boyne Pollard (2016). No use logrotate o newsyslog en este siglo. . Respuestas frecuentes.
  • https://unix.stackexchange.com/a/326166/5132

el rotatelogs herramienta enviada con apache (en el bin dir) (ver documentos) toma la entrada de stdin y rota el registro después de una cantidad específica de tiempo


Tuve un problema similar e inicialmente descarté logrotate pero resultó que logrotate en realidad puede hacer esto bien, la directiva clave es "copytruncate ". Por alguna razón, ese término no apareció en ninguna de las búsquedas en Google que hice, por lo que estoy agregando esta respuesta para aclarar exactamente cómo usarlo en este caso.

El truco es que esto solo funciona si la redirección se hace con ">> " (añadir) en lugar de "> " (crear).

Archivo de configuración (truncado.cfg):

/tmp/temp.log {
    size 10M
    copytruncate
    rotate 4
    maxage 100
}

Programa de prueba (nunca abandona el archivo). Puede ver cómo se llena el disco y, aunque la eliminación del archivo de registro parece funcionar, en realidad no liberará espacio en el disco:

cat /dev/urandom >> /tmp/temp.log

Rotación de registros en ejecución:

logrotate truncate.cfg

Linux
  1. Cómo vaciar un archivo de registro en Linux

  2. Cómo crear una rotación de archivo de registro personalizada por logrotate en Linux

  3. Cómo redirigir la salida a un archivo y stdout

  4. ¿Cómo imprimir la salida del comando Linux en un archivo?

  5. Eliminar las primeras N líneas de un archivo de registro activo

Cómo redirigir stderr a stdout en Bash

Cómo cambiar el archivo de registro de Sudo predeterminado en Linux

Configurando logrotate en Linux

Rotación de archivos de registro

Redirigir toda la salida al archivo en Bash

Capture la salida de nethogs en el archivo de registro