logrotate es una herramienta de línea de comandos de Linux para administrar las entradas del registro. Esta herramienta ayuda a realizar diferentes tipos de tareas en las entradas de registro por parte del administrador, como limitar los archivos de registro rotados, comprimir los archivos de registro rotados, eliminar los archivos de registro innecesarios, ejecutar el script de shell particular basado en los archivos de registro, etc. En este tutorial se muestran varios ejemplos del comando “logrorate” para administrar los archivos de registro de diferentes maneras.
Verifique la versión instalada de Logrotate
El comando “logrotate” está instalado por defecto en la nueva versión del sistema operativo Ubuntu. Ejecute el siguiente comando para verificar la versión instalada del comando 'logrotate':
$ logrotate --versión
Las entradas de registro de las diferentes aplicaciones se almacenan en la carpeta “/var/log” de forma predeterminada. El siguiente contenido similar aparecerá si verifica el contenido de la carpeta.
$ es / era / registro
Establecer la configuración 'Logrotate'
Fijando el valor | Objetivo |
diario/semanal/mensual/anual | Define el tiempo de duración para rotar los registros. |
rotar número | Define la cantidad de archivos que se conservarán antes de eliminar los archivos de registro antiguos. |
comprimir | Se utiliza para comprimir los archivos de registro. |
comprimircmd | Se utiliza para configurar el comando 'comprimir'. El gzip es el comando predeterminado. |
descomprimircmd | Se utiliza para configurar el comando 'descomprimir'. El gunzip es el comando predeterminado. |
retrasarcomprimir | Se utiliza para retrasar el proceso de compresión de los archivos de registro. |
notificación vacía | Se utiliza para no rotar el archivo vacío. |
Estoy perdido | Si está configurado, no se genera ningún error para los archivos de registro que faltan. |
tamaño | Se utiliza para establecer el límite para comenzar a rotar los archivos de registro. |
fechatexto | Se utiliza para agregar un valor de fecha como sufijo del archivo rotado. |
copiartruncar | Se utiliza para crear una copia del archivo original. |
pre-rotado | Se utiliza para ejecutar un script antes de rotar los archivos de registro. |
postrotar | Se utiliza para ejecutar un script después de rotar los archivos de registro. |
crear | Se utiliza para crear archivos de registro con privilegios de root. |
Sintaxis:
La sintaxis del comando 'logrotate' se proporciona de la siguiente manera:
logrotate [ OPCIÓN ] ruta_archivo_config
Se pueden utilizar diferentes tipos de opciones para diferentes propósitos con el comando 'logrotate'.
Opciones de Logrotate
Algunas opciones útiles del comando “logrotate” se mencionan a continuación:
-f, –fuerza | Se utiliza para realizar la rotación con fuerza cuando sea necesario. |
-d, –depurar | Se utiliza para habilitar el modo de depuración durante la rotación. |
-m, –correo |
Se utiliza para enviar un correo electrónico durante la rotación. |
-s, –estado |
Se utiliza para archivos de estado alternativos. |
-uso | Se utiliza para imprimir la información de uso. |
-?, -ayuda | Se utiliza para imprimir los mensajes de ayuda. |
-v, –detallado | Se utiliza para imprimir en modo detallado. |
Archivo de configuración Logrotate
El archivo de configuración principal de logrotate se encuentra en la ubicación “/etc/logrotate.conf”. Ejecute el siguiente comando para abrir el archivo en el editor nano:
$ nano / etc. / logrotate.confLa configuración predeterminada del comando 'logrotate' se muestra en el archivo 'logrotate.conf'. La directiva 'incluir' se utiliza en el archivo para recuperar la configuración que se encuentra en el directorio '/etc/logrotate.d'.
Ejemplo 1: crear un archivo de configuración de Logrotate simple
Cree un archivo de registro de muestra llamado '/var/log/test.log' con los datos de registro de muestra. Ejecute el siguiente comando para abrir el editor nano y crear un nuevo archivo 'logrotate.conf' en la ubicación de la carpeta '/etc/tmp'. Cree la carpeta “/tmp” con privilegios de root si no se creó antes.
$ nano / etc. / tmp / logrotate.confAgregue el siguiente contenido al archivo para el archivo “/var/log/test.log”. Según la configuración, el archivo “test.log” se rotará diariamente si el tamaño del archivo supera los 5K:
/ era / registro / prueba.log {a diario
tamaño 5K
su administrador raíz
}
Ejecute el siguiente comando para verificar el tamaño del archivo de registro:
$ es -l / era / registro / prueba.logEjecute el comando 'logrotate' después de crear el archivo de configuración.
$ sudo logrotate / etc. / tmp / logrotate.confEjecute el siguiente comando nuevamente para verificar el tamaño del archivo de registro después de ejecutar el comando 'logrotate':
$ es -l / era / registro / prueba.logEl tamaño del archivo “test.log” es 1K+. Por lo tanto, no se realiza ninguna rotación según la configuración.
Cambie el valor del tamaño a 1K en el archivo “/etc/tmp/logrotate.conf” y ejecute el comando “ls” nuevamente para verificar el tamaño del archivo “/var/log/test.log”. Según el resultado, el archivo de registro se rota y se elimina porque se excede el límite de tamaño.
Ejemplo 2: uso de Logrotate Copytruncate
Cree o modifique el archivo “/etc/tmp/logrotate.conf” con la siguiente configuración para mostrar el uso de copytruncate. De acuerdo con la nueva configuración, logrotate crea una copia del archivo original reduciendo el tamaño del archivo original a cero.
/ era / registro / prueba.log {girar 5
tamaño 1k
copiartruncar
su administrador raíz
}
Ejecute el siguiente comando para verificar el tamaño del archivo 'test.log':
$ es -l / era / registro / prueba.logEjecute el comando 'logrotate' después de crear el archivo de configuración.
$ sudo logrotate / etc. / tmp / logrotate.confEjecute el siguiente comando nuevamente para verificar el tamaño del archivo “test.log” después de ejecutar el comando “logrotate”:
$ es -l / era / registro / prueba.logEl tamaño del archivo original pasa a ser 0 después de ejecutar el comando 'logrotate' para la configuración copytruncate.
Ejemplo 3: uso de la compresa Logrotate
Cree o modifique el archivo “/etc/tmp/logrotate.conf” con la siguiente configuración para mostrar el uso de la compresión. Según la nueva configuración, logrotate crea un archivo comprimido del archivo original.
/ era / registro / prueba.log {girar 5
tamaño 1k
comprimir
crear 770 administrador raíz
}
Ejecute el siguiente comando para verificar la lista de archivos y carpetas de “/var/log”:
$ es / era / registro /Ejecute el comando 'logrotate' después de crear el archivo de configuración.
$ sudo logrotate / etc. / tmp / logrotate.confEjecute el siguiente comando nuevamente para verificar la lista de archivos y carpetas de “/var/log”:
$ es / era / registro /El archivo comprimido del archivo “test.log” se crea con el nombre “test.log.1.gz” y se elimina el archivo original.
Ejemplo 4: uso de Logrotate Dateext
Cree o modifique el archivo “/etc/tmp/logrotate.conf” con la siguiente configuración para mostrar el uso de dateext. De acuerdo con la nueva configuración, logrotate crea un archivo comprimido del archivo original con el valor de fecha.
era / registro / prueba.log {su administrador raíz
girar 5
tamaño 1k
comprimir
crear 770 administrador raíz
fechatexto
}
Ejecute el comando 'logrotate' después de crear el archivo de configuración.
$ sudo logrotate / etc. / tmp / logrotate.confEjecute el siguiente comando para verificar la lista de archivos y carpetas de “/var/log”:
$ es -l / era / registro /El archivo comprimido del archivo “test.log” se crea con el nombre “test.log.20240129.gz” y se elimina el archivo original.
Ejemplo 5: Uso de Logrotate Maxage
Cree o modifique el archivo “/etc/tmp/logrotate.conf” con la siguiente configuración para mostrar el uso de maxage. Según la configuración, logrotate mantiene cinco entradas de registro si el tamaño del archivo de registro supera 1K después de un día.
/ era / registro / prueba.log {su administrador raíz
girar 5
tamaño 1k
comprimir
máximo 1
}
Ejecute el siguiente comando 'logrotate' para almacenar el resultado en otro archivo de registro llamado 'out.log':
$ sudo logrotate -s = / era / registro / salir.log / etc. / tmp / logrotate.confSegún el siguiente resultado, el archivo 'out.log' se crea después de ejecutar el comando 'logrotate':
Ejemplo 6: uso de Logrotate Missingok
Cree o modifique el archivo “/etc/tmp/logrotate.conf” con la siguiente configuración. Aquí, el archivo de registro 'testfile.log' no existe en la carpeta '/var/log'.
/ era / registro / archivo de prueba.log {su administrador raíz
girar 5
tamaño 1k
comprimir
}
Se imprime un mensaje de error después de ejecutar el comando 'logrotate'.
Agregue la configuración 'missingok' en el archivo de configuración de logrotate y ejecute el comando 'logrotate' nuevamente. No se imprime ningún error para el archivo de registro que falta.
Ejemplo 7: Uso de Logrotate Prerotate
Cree un archivo Bash llamado 'test.sh' con el siguiente script que imprime un mensaje simple. El archivo se utiliza en este ejemplo de logrotate para mostrar el uso de prerotate en el archivo de configuración de logrotate.
test.sh#!/bin/bash
eco 'ejemplos de logrotación...'
Después de crear el archivo, ejecute el siguiente comando para establecer el permiso de ejecución de este archivo para todos los usuarios:
$ chmod a+x / hogar / comprensión / test.shAhora, cree o modifique el archivo “/etc/tmp/logrotate.conf” con la siguiente configuración. Según la configuración, logrotate mantiene cinco entradas de registro si el tamaño del archivo de registro excede 1K y el archivo 'test.sh' se ejecuta antes de la rotación.
/ era / registro / prueba.log {su administrador raíz
girar 5
tamaño 1k
pre-rotado
/ hogar / comprensión / test.sh
guión final
}
La salida del archivo “test.sh” se muestra después de ejecutar el comando “logrotate”:
Conclusión
Los diversos usos del comando 'logrotate' se muestran en este tutorial utilizando múltiples ejemplos que ayudarán al usuario de Linux a conocer los usos del comando y administrar los archivos de registro correctamente.