Este tutorial rápido le muestra dos formas de borrar los registros diarios de systemd de su sistema Linux.
El diario systemd es el propio sistema de registro de systemd. Es equivalente al syslog en el sistema init. Recopila y almacena datos de registro del kernel, mensajes de registro del sistema, resultados estándar y errores para varios servicios systemd.
Una máquina Linux con systemd escribe los registros en el directorio /var/log/journal. Si recuerda la estructura de directorios de Linux, /var es donde se almacenan los registros del sistema.
Puede ver manualmente los archivos de registro usando el comando less o usar el comando journalctl. Para ver todos los registros más recientes, use el comando con la opción inversa.
journalctl -r
Lo que pasa con el registro es que, con el tiempo, comienza a crecer. Y si revisa el espacio en disco en Linux, verá que a veces se necesitan varios GB de espacio.
Déjame mostrarte cómo limpiar los registros diarios de systemd y liberar espacio en disco en tu sistema Linux.
Borrado de registros diarios de systemd
Primero verifique el espacio ocupado por los registros diarios con el comando du:
du -sh /var/log/journal/
También puede usar el comando journalctl para la misma tarea:
journalctl --disk-usage
Ambos comandos deberían dar aproximadamente el mismo resultado:
[email protected]:~$ journalctl --disk-usage
Archived and active journals take up 1.6G in the file system.
[email protected]:~$ sudo du -sh /var/log/journal/
1.7G /var/log/journal/
Ahora que sabe cuánto espacio ocupan los registros diarios, puede decidir si desea borrar los registros o no. Si decide borrar los registros del diario, permítame mostrarle un par de formas de hacerlo.
Por supuesto, puede usar el comando rm para eliminar los archivos en la carpeta de registro, pero no lo aconsejaré. El comando journalctl le brinda la forma correcta de manejar registros antiguos.
Lo primero que debe hacer es rotar los archivos de diario. Esto marcará los registros diarios actualmente activos como archivo y creará nuevos registros nuevos. Es opcional pero una buena práctica hacerlo.
sudo journalctl --rotate
Ahora tiene tres formas de borrar los registros diarios antiguos. Elimina los registros anteriores a un tiempo determinado o elimina los archivos de registro más antiguos para que el tamaño total del registro se limite al espacio en disco predefinido o limita la cantidad de archivos de registro. Veamos cómo usar los tres métodos.
1. Borrar registro diario con más de x días
Tenga en cuenta que los registros son importantes para fines de auditoría, por lo que no debe eliminarlos todos al mismo tiempo. Digamos que desea mantener el historial de registro de solo dos días. Para eliminar todas las entradas que tengan más de dos días, utilice este comando:
sudo journalctl --vacuum-time=2d
Así es como puede verse la salida:
Vacuuming done, freed 1.6G of archived journals from /var/log/journal/1b9ab93094fa4978beba80fd3c48a18c
También puede cambiar el marco de tiempo proporcionado en horas como 2h, en minutos como 2m, en segundos como 2s. Si desea unidades de tiempo más grandes, también puede usar 2 semanas, 2 meses.
2. Restrinja los registros a un tamaño determinado
Otra forma es restringir el tamaño del registro. Con esto, eliminará los archivos de registro diario hasta que el espacio en disco ocupado por los registros diarios sea inferior al tamaño especificado.
sudo journalctl --vacuum-size=100M
Esto reducirá el tamaño del registro a alrededor de 100 MB.
Vacuuming done, freed 40.0M of archived journals from /var/log/journal/1b9ab93094fa4978beba80fd3c48a18c.
Puede especificar el tamaño en GB con G, MB con M, KB con K, etc.
3. Restringir el número de archivos de registro
La tercera forma es limitar el número de archivos de registro. El journalctl normalmente tiene archivos de registro para el sistema y para los usuarios. A medida que los registros envejecen, se archivan en varios archivos.
Puede limitar el número de archivos de registro de archivo. Supongamos que desea tener solo cinco archivos de registro.
journalctl --vacuum-files=5
Eliminará los archivos de registro de archivo más antiguos dejando solo el número especificado de archivos de registro.
Deleted archived journal /var/log/journal/1b9ab93094fa4978beba80fd3c48a18c/[email protected] (8.0M).
Deleted archived journal /var/log/journal/1b9ab93094fa4978beba80fd3c48a18c/[email protected] (48.0M).
Deleted archived journal /var/log/journal/1b9ab93094fa4978beba80fd3c48a18c/[email protected] (48.0M).
Vacuuming done, freed 104.0M of archived journals from /var/log/journal/1b9ab93094fa4978beba80fd3c48a18c.
Borrar automáticamente los archivos de registro antiguos [Requiere conocimiento intermedio de la línea de comandos]
Lo que acaba de hacer limpiará los archivos de registro por ahora. En un mes los registros aumentarán nuevamente. Puede limpiarlos manualmente con uno de los métodos descritos anteriormente. Pero esa es una tarea tediosa y es posible que no recuerdes hacer eso regularmente.
Lo bueno es que puede configurar systemd para manejar automáticamente los archivos de registro antiguos.
El journalctl tiene un archivo de configuración en /etc/systemd/journald.conf. Hay configuraciones que están comentadas. Las líneas comentadas básicamente indican el valor predeterminado de esos parámetros de configuración (incluso si están comentados).
Puede cambiar algunas de estas configuraciones predeterminadas para limpiar automáticamente los archivos de registro.
Le gustaría cambiar las siguientes configuraciones:
Configuración | Descripción |
---|---|
Uso máximo del sistema | El espacio máximo en disco que pueden ocupar los registros |
Tamaño máximo de archivo del sistema | Tamaño máximo de un archivo de registro INDIVIDUAL |
SystemMaxFiles | Número máximo de archivos de registro |