GNU/Linux >> Tutoriales Linux >  >> Linux

HowTo:El último tutorial del comando Logrotate con 10 ejemplos

La gestión eficaz de los archivos de registro es una tarea esencial para los administradores de sistemas de Linux.

En este artículo, analicemos cómo realizar las siguientes operaciones de archivo de registro utilizando UNIX logrotate utilidad.

  • Rotar el archivo de registro cuando el tamaño del archivo alcance un tamaño específico
  • Continúe escribiendo la información de registro en el archivo recién creado después de rotar el archivo de registro antiguo
  • Comprimir los archivos de registro rotados
  • Especifique la opción de compresión para los archivos de registro rotados
  • Rote los archivos de registro antiguos con la fecha en el nombre del archivo
  • Ejecute scripts de shell personalizados inmediatamente después de la rotación de registros
  • Eliminar archivos de registro rotados más antiguos

1. Archivos de configuración Logrotate

Los siguientes son los archivos clave que debe tener en cuenta para que logrotate funcione correctamente.

/usr/sbin/logrotate – El propio comando logrotate.

/etc/cron.daily/logrotat e:este script de shell ejecuta el comando logrotate todos los días.

$ cat /etc/cron.daily/logrotate
#!/bin/sh

/usr/sbin/logrotate /etc/logrotate.conf
EXITVALUE=$?
if [ $EXITVALUE != 0 ]; then
    /usr/bin/logger -t logrotate "ALERT exited abnormally with [$EXITVALUE]"
fi
exit 0

/etc/logrotate.conf – La configuración de rotación de registro para todos los archivos de registro se especifica en este archivo.

$ cat /etc/logrotate.conf
weekly
rotate 4
create
include /etc/logrotate.d
/var/log/wtmp {
    monthly
    minsize 1M
    create 0664 root utmp
    rotate 1
}

/etc/logrotate.d – Cuando se instalan paquetes individuales en el sistema, colocan la información de configuración de rotación de registros en este directorio. Por ejemplo, la información de configuración de rotación de registro de yum se muestra a continuación.

$ cat /etc/logrotate.d/yum
/var/log/yum.log {
    missingok
    notifempty
    size 30k
    yearly
    create 0600 root root
}

2. Opción de tamaño Logrotate:rotar el archivo de registro cuando el tamaño del archivo alcance un límite específico

Si desea rotar un archivo de registro (por ejemplo, /tmp/output.log) por cada 1 KB, cree logrotate.conf como se muestra a continuación.

$ cat logrotate.conf
/tmp/output.log {
        size 1k
        create 700 bala bala
        rotate 4
}

Esta configuración logrotate tiene las siguientes tres opciones:

  • tamaño 1k:logrotate se ejecuta solo si el tamaño del archivo es igual (o mayor) a este tamaño.
  • crear:gire el archivo original y cree el nuevo archivo con el permiso, el usuario y el grupo especificados.
  • rotar:limita el número de rotaciones del archivo de registro. Por lo tanto, esto mantendría solo los últimos 4 archivos de registro rotados.

Antes de la logrotation, el siguiente es el tamaño de output.log:

$ ls -l /tmp/output.log
-rw-r--r-- 1 bala bala 25868 2010-06-09 21:19 /tmp/output.log

Ahora, ejecute el comando logrotate como se muestra a continuación. La opción -s especifica el nombre de archivo para escribir el estado de logrotate.

$ logrotate -s /var/log/logstatus logrotate.conf

Nota:cada vez que necesite la rotación de registros para algunos archivos, prepare la configuración de logrotate y ejecute el comando logroate manualmente.
Después de la rotación de logros, el siguiente es el tamaño de output.log:

$ ls -l /tmp/output*
-rw-r--r--  1 bala bala 25868 2010-06-09 21:20 output.log.1
-rwx------ 1 bala bala        0 2010-06-09 21:20 output.log

Eventualmente, esto continuará siguiendo la configuración de los archivos de registro rotados.

  • salida.log.4.
  • salida.log.3
  • salida.log.2
  • salida.log.1
  • salida.log

Recuerde que después de la rotación del registro, el archivo de registro corresponde al servicio que aún apunta al archivo rotado (output.log.1) y continúa escribiendo en él. Puede usar el método anterior, si desea rotar el apache access_log o error_log cada 5 MB.

Idealmente, debería modificar /etc/logrotate.conf para especificar la información de logrotate para un archivo de registro específico.

Además, si tiene archivos de registro enormes, puede usar:10 ejemplos impresionantes para ver archivos de registro enormes en Unix

3. Opción Logrotate copytruncate:continúe escribiendo la información de registro en el archivo recién creado después de rotar el archivo de registro antiguo.

$ cat logrotate.conf
/tmp/output.log {
         size 1k
         copytruncate
         rotate 4
}

copytruncate indica a logrotate que cree la copia del archivo original (es decir, gire el archivo de registro original) y trunque el archivo original a un tamaño de cero bytes. Esto ayuda a que el servicio respectivo que pertenece a ese archivo de registro pueda escribir en el archivo adecuado.

Mientras manipula los archivos de registro, es posible que encuentre útiles los consejos de eliminación de sed y sustituto de sed.

4. Opción de compresión Logrotate:comprime los archivos de registro rotados

Si usa la opción de compresión como se muestra a continuación, los archivos girados se comprimirán con la utilidad gzip.

$ cat logrotate.conf
/tmp/output.log {
        size 1k
        copytruncate
        create 700 bala bala
        rotate 4
        compress
}

Salida del archivo de registro comprimido:

$ ls /tmp/output*
output.log.1.gz output.log

5. Opción Logrotate dateext:rota el archivo de registro anterior con la fecha en el nombre del archivo de registro

$ cat logrotate.conf
/tmp/output.log {
        size 1k
        copytruncate
        create 700 bala bala
        dateext
        rotate 4
        compress
}

Después de la configuración anterior, notará la fecha en el archivo de registro rotado como se muestra a continuación.

$ ls -lrt /tmp/output*
-rw-r--r--  1 bala bala 8980 2010-06-09 22:10 output.log-20100609.gz
-rwxrwxrwx 1 bala bala     0 2010-06-09 22:11 output.log

Esto funcionaría solo una vez en un día. Porque cuando intente rotar la próxima vez en el mismo día, el archivo rotado anteriormente tendrá el mismo nombre de archivo. Por lo tanto, logrotate no tendrá éxito después de la primera ejecución en el mismo día.

Por lo general, puede usar tail -f para ver la salida del archivo de registro en tiempo real. Incluso puede combinar varias salidas tail -f y mostrarlas en un solo terminal.

6. Logrotar opción mensual, diaria, semanal:rotar el archivo de registro semanalmente/diariamente/mensualmente

Por hacer la rotación mensualmente una vez,

$ cat logrotate.conf
/tmp/output.log {
        monthly
        copytruncate
        rotate 4
        compress
}

Agregue la palabra clave semanal como se muestra a continuación para la rotación de registros semanales.

$ cat logrotate.conf
/tmp/output.log {
        weekly
        copytruncate
        rotate 4
        compress
}

Agregue la palabra clave diaria como se muestra a continuación para la rotación de registros de cada día. También puede rotar los registros cada hora.

$ cat logrotate.conf
/tmp/output.log {
        daily
        copytruncate
        rotate 4
        compress
}

7. Opción Logrotate postrotate endscript:ejecute scripts de shell personalizados inmediatamente después de la rotación de registros

Logrotate le permite ejecutar sus propios scripts de shell personalizados después de completar la rotación del archivo de registro. La siguiente configuración indica que ejecutará myscript.sh después de la logrotation.

$ cat logrotate.conf
/tmp/output.log {
        size 1k
        copytruncate
        rotate 4
        compress
        postrotate
               /home/bala/myscript.sh
        endscript
}

8. Opción Logrotate maxage:elimina los archivos de registro rotados más antiguos

Logrotate elimina automáticamente los archivos rotados después de un número específico de días. El siguiente ejemplo indica que los archivos de registro rotados se eliminarán después de 100 días.

$ cat logrotate.conf
/tmp/output.log {
        size 1k
        copytruncate
        rotate 4
        compress
        maxage 100
}

9. Opción Logrotatemissingok:no devolver el error si falta el archivo de registro

Puede ignorar el mensaje de error cuando el archivo real no está disponible usando esta opción como se muestra a continuación.

$ cat logrotate.conf
/tmp/output.log {
        size 1k
        copytruncate
        rotate 4
        compress
        missingok
}

10. Opción Logrotate compresscmd y compressext:especifique el comando de compresión para la rotación del archivo de registro

$ cat logrotate.conf
/tmp/output.log {
        size 1k
        copytruncate
        create
        compress
        compresscmd /bin/bzip2
        compressext .bz2
        rotate 4
}

Las siguientes opciones de compresión se especifican arriba:

  • comprimir:indica que se debe realizar la compresión.
  • compresscmd:especifique qué tipo de comando de compresión debe usarse. Por ejemplo:/bin/bzip2
  • compressext:especifique la extensión en el archivo de registro rotado. Sin esta opción, el archivo rotado tendría la extensión predeterminada como .gz. Entonces, si usa el cmd de compresión bzip2, especifique la extensión como .bz2 como se muestra en el ejemplo anterior.

Linux
  1. Rotar y archivar registros con el comando logrotate de Linux

  2. Ordenar comando en Linux con ejemplos

  3. El tutorial de comando Type con ejemplos para principiantes

  4. El tutorial del comando Shuf con ejemplos para principiantes

  5. El último tutorial de Bash Array con 15 ejemplos

El tutorial de Top Command con ejemplos para principiantes

El tutorial del comando mktemp con ejemplos para principiantes

El tutorial de comando Grep con ejemplos para principiantes

El tutorial de comandos Uniq con ejemplos para principiantes

El tutorial del comando fc con ejemplos para principiantes

El tutorial Ultimate Tar Command con 10 ejemplos prácticos