Questo rapido tutorial mostra due modi per cancellare i registri del journal di sistema dal tuo sistema Linux.
Il diario systemd è il sistema di registrazione di systemd. È equivalente al syslog nel sistema init. Raccoglie e archivia i dati di registrazione del kernel, i messaggi del registro di sistema, l'output standard e gli errori per vari servizi di sistema.
Una macchina Linux con systemd scrive i log nella directory /var/log/journal. Se ricordi la struttura delle directory di Linux, /var è dove sono archiviati i log di sistema.
È possibile visualizzare manualmente i file di registro utilizzando il comando less o utilizzare il comando journalctl. Per visualizzare tutti i registri più recenti, utilizzare il comando con opzione inversa.
journalctl -r
Il problema con la registrazione è che nel tempo inizia a diventare grande. E se controlli lo spazio su disco in Linux, vedrai che a volte ci vogliono diversi GB di spazio.
Lascia che ti mostri come pulire i registri del journal di sistema e liberare spazio su disco sul tuo sistema Linux.
Cancellazione dei registri del journal di sistema
Per prima cosa controlla lo spazio occupato dai registri del journal con il comando du:
du -sh /var/log/journal/
Puoi anche usare il comando journalctl per la stessa attività:
journalctl --disk-usage
Entrambi i comandi dovrebbero dare approssimativamente lo stesso risultato:
[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/
Ora che sai quanto spazio occupano i registri del diario, puoi decidere se vuoi cancellare i registri o meno. Se decidi di cancellare i registri del diario, lascia che ti mostri un paio di modi per farlo.
Ovviamente puoi usare il comando rm per eliminare i file nella cartella di registro, ma non lo consiglierò. Il comando journalctl ti offre il modo corretto di gestire i vecchi log.
La prima cosa che dovresti fare è ruotare i file del diario. Questo contrassegnerà i registri del journal attualmente attivi come archivio e creerà nuovi registri. È facoltativo ma è una buona pratica farlo.
sudo journalctl --rotate
Ora hai tre modi per cancellare i vecchi registri del diario. Si eliminano i registri più vecchi di un determinato momento o si eliminano i file di registro meno recenti in modo che la dimensione totale del registro sia limitata allo spazio su disco predefinito o si limiti il numero di file di registro. Vediamo come utilizzare tutti e tre i metodi.
1. Cancella registro del diario più vecchio di x giorni
Tieni presente che i registri sono importanti ai fini del controllo, quindi non dovresti eliminarli tutti contemporaneamente. Supponiamo che tu voglia mantenere la cronologia del registro di soli due giorni. Per eliminare tutte le voci più vecchie di due giorni, usa questo comando:
sudo journalctl --vacuum-time=2d
Ecco come potrebbe essere l'output:
Vacuuming done, freed 1.6G of archived journals from /var/log/journal/1b9ab93094fa4978beba80fd3c48a18c
Puoi anche modificare l'intervallo di tempo fornito in ore come 2h, in minuti come 2m, in secondi come 2s. Se desideri unità di tempo più grandi, puoi anche 2 settimane, 2 mesi.
2. Limita i registri a una determinata dimensione
Un altro modo è limitare la dimensione del registro. Con questo, eliminerà i file di registro del journal finché lo spazio su disco occupato dai registri del journal non scende al di sotto della dimensione specificata.
sudo journalctl --vacuum-size=100M
Ciò ridurrà la dimensione del registro a circa 100 MB.
Vacuuming done, freed 40.0M of archived journals from /var/log/journal/1b9ab93094fa4978beba80fd3c48a18c.
È possibile specificare la dimensione in GB con G, MB con M, KB con K ecc.
3. Limita il numero di file di registro
Il terzo modo consiste nel limitare il numero di file di registro. Il journalctl di solito ha file di registro per il sistema e per gli utenti. Man mano che i registri invecchiano, vengono archiviati in vari file.
È possibile limitare il numero di file di registro di archivio. Supponiamo che tu voglia avere solo cinque file di registro.
journalctl --vacuum-files=5
Rimuoverà i file di registro di archivio meno recenti lasciando solo il numero specificato di file di 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.
Cancellazione automatica dei vecchi file di registro [richiede una conoscenza intermedia della riga di comando]
Quello che hai appena fatto pulirà i file di registro per ora. Tra un mese i log aumenteranno di nuovo. Puoi pulirli manualmente con uno dei metodi sopra descritti. Ma questo è un compito noioso e potresti non ricordarti di farlo regolarmente.
La cosa buona è che puoi configurare systemd per gestire automaticamente i vecchi file di registro.
Il journalctl ha un file di configurazione in /etc/systemd/journald.conf. Ci sono impostazioni che sono commentate. Le righe commentate indicano sostanzialmente il valore predefinito di tali parametri di impostazione (anche se sono commentati).
Puoi modificare alcune di queste impostazioni predefinite per pulire automaticamente i file di registro.
Vorresti modificare le seguenti impostazioni:
Impostazione | Descrizione |
---|---|
SystemMaxUse | Lo spazio massimo su disco può richiedere |
SystemMaxFileSize | Dimensione massima di un file di registro INDIVIDUALE |
File SystemMax | Numero massimo di file di registro |
Attenzione!
Tieni presente che dovresti prestare attenzione durante la modifica dei file di configurazione. Devi essere a tuo agio nell'usare un editor di testo basato su terminale come Vim, Emacs o Nano in modo da non commettere errori stupidi durante la modifica del file conf.
Consiglio di fare prima un backup del file di configurazione:
cp /etc/systemd/journald.conf /etc/systemd/journald.conf.back
Ora dovresti decommentare (rimuovere il # all'inizio della riga) l'impostazione che vuoi usare. Ad esempio, voglio limitare lo spazio su disco massimo occupato dai file di registro a 250 MB.
Dovrai usare Vim o qualche altro editor basato su terminale per modificare questo file di configurazione. Ecco come mi appare dopo aver modificato il file.
# This file is part of systemd.
#
# systemd is free software; you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation; either version 2.1 of the License, or
# (at your option) any later version.
#
# Entries in this file show the compile time defaults.
# You can change settings by editing this file.
# Defaults can be restored by simply deleting this file.
#
# See journald.conf(5) for details.
[Journal]
#Storage=auto
#Compress=yes
#Seal=yes
#SplitMode=uid
#SyncIntervalSec=5m
#RateLimitIntervalSec=30s
#RateLimitBurst=1000
SystemMaxUse=250M
#SystemKeepFree=
#SystemMaxFileSize=
#SystemMaxFiles=100
Tieni presente che dopo aver modificato il file di configurazione, dovresti caricare le modifiche:
sudo systemctl restart systemd-journald
Il file journald.conf può essere utilizzato per modificare ulteriormente le impostazioni di journalctl. Puoi anche impostare i livelli di log (informazioni, debug, errore, ecc.) che vuoi vedere. Sta a te decidere se vuoi modificare anche queste impostazioni.
Spero che questo suggerimento ti piaccia per cancellare i file di registro del diario di sistema. Se hai domande o suggerimenti, lascia un commento qui sotto.