No pude encontrar en google ninguna forma segura de borrar el diario systemd. ¿Alguien conoce alguna forma segura y confiable de hacerlo?
Digamos que estaba experimentando con algo y mis registros se llenaron con varios mensajes de error. Además, estoy mostrando mi diario en mi escritorio usando Conky. Realmente no quiero ver esos errores, ya que me recuerdan un día horrible que estaba arreglando estas cosas, quiero sentirme como un hombre nuevo después de este horror. Creo que todos estarán de acuerdo en que esta es una razón válida para borrar los registros: P.
systemd
systemd-journald
Łukasz Zaroda
fuente
fuente
journalctl --vacuum-size=1K
entoncesjournalctl
todavía muestra mucho más de 1K. Muestra todos los mensajes desde el último arranque.journalctl --flush --rotate
antesjournalctl --vacuum-time=1s
y eliminó más cosas, aunque todavía no todo.Por lo general, no borra el diario usted mismo. Eso es administrado por el sistema mismo y los registros antiguos se rotan a medida que ingresan nuevos datos. Lo correcto sería programar el diario para mantener solo la cantidad de datos que le interese. Lo más habitual para ajustar es el disco total espacio se le permite ocupar. Una vez que cruza esta frontera, comenzará a lanzar entradas antiguas para permanecer cerca de este valor.
Puede configurar esto
/etc/systemd/journald.conf
así:fuente
MaxRetentionSec
lugar deSystemMaxUse
. Verman journald.conf
para más detalles.A la respuesta de Michael le falta una cosa: pasar la aspiradora solo elimina los archivos de diario archivados, no los activos. Para deshacerse de todo, primero debe rotar los archivos para que las entradas recientes se muevan a archivos inactivos.
Entonces, la respuesta completa para eliminar todas las entradas parece ser
(Tenga en cuenta que no puede combinar esto en un solo
journalctl
comando).Por cierto, algunas distribuciones han configurado journald para que escriba registros en el disco (
/var/log/journal
) mientras que otros mantienen registros en la memoria (/run/log/journal
). Espero que en algunos casos sea necesario usarjournalctl --flush
primero para eliminar todo.Si no tiene
--rotate
en su versión, puede usar el--since
argumento para filtrar entradas:fuente
En Arch Linux, lo más cerca que estuve fue:
sudo systemctl restart systemd-journald
En mi sistema, cada archivo de diario es de 8 MB, y lo anterior borró todos menos 3, con lo que el tamaño total es de ~ 25 MB.
Mi caso de uso se incapacitante vaca para BTRFS (sólo para el directorio de diario y subdirectorios):
sudo chattr +C /var/log/journal/*
. El problema es que el atributo solo se establece en archivos recién creados, por lo tanto, el deseo de vaciar el diario.fuente
SystemMaxUse=1K
, reiniciadosystemd-journald
, pero journalctl todavía muestra las entradas que quiero que desaparezcan. ¿Cómo es este progreso de los archivos de texto plano?Desde entonces
--vacuum-time
y--vacuum-size
no hice nada por mí, hice lo siguiente:No está bien, pero funcionó.
fuente
/run/log
.Un método de fuerza muy bruta para limpiar todo el registro:
También puede usar
--vacuum-size
como Michael mentoined.fuente
systemctl restart systemd-journald
.Tanto --rotate como --vacuum-time = 1s no me funcionaron en CentOS. Pude borrarlo así:
fuente
./journal
. Losjournalctl
comandos solo funcionan en el más reciente. Así que tuve que eliminar el directorio antiguo manualmente y eso es seguro. Después de limitar el tamaño en el diario conf.Respalde en caso de que lo necesite en el futuro:
cp /run/log/journal/<temp-string>/system.journal /mylog/dir/back/system.journal.bak
Borrar el archivo:
cd /run/log/journal/<temp-string>/
>system.journal
Verifique para ver los últimos registros:
journalctl -xe
fuente
journalctl -b
solo se mostrará desde el arranque más reciente. También puede usar-b -1
,-b -2
etc. Su horrendo día todavía está allí, pero no tendrá que verlo, a menos que lo necesite.fuente
Mi respuesta anterior acaba de ser eliminada por ser "duplicada". Bueno, perdón por no ser lo suficientemente claro en mi respuesta anterior, pero fue diferente de las respuestas existentes. Así que aquí hay una versión más elaborada:
journalctl -m --vacuum-time=1s
hizo el truco para mí Tenga en cuenta la-m
bandera , combina todos sus diarios y luego límpielos. Sin la-m
bandera, no limpió nada en mi caso (en CentOS-7).Espero eso ayude.
fuente