Come utilizzare Journalctl per leggere i registri di sistema Linux
Per molti anni i log di sistema e del kernel sono stati gestiti da un'utilità chiamata syslogd. La maggior parte dei sistemi operativi basati su Linux sono migrati su systemd, che viene fornito con un demone di registro diverso, journald. Per interagire con questi log, si utilizza l'utilità journalctl.
Concedere all'utente l'autorizzazione per leggere i registri di sistema
Solo gli utenti appartenenti ai gruppi "adm" o "systemd-journal" possono leggere i log di systemd. Distribuzioni come Ubuntu ti aggiungono già come utente al gruppo adm.
Apri un emulatore di terminale e digita il seguente comando:
groupsSe vedi "adm" o "systemd-journal" nell'output, puoi saltare il resto dei passaggi in questa sezione. Altrimenti aggiungiti al gruppo "adm".
sudo adduser $USER adm
Dovresti riavviare la sessione di accesso affinché questa modifica abbia effetto (disconnettersi e accedere). Se non puoi farlo per vari motivi, usa questo comando per accedere al nuovo gruppo senza riavviare la sessione grafica.
newgrp admNon chiudere la finestra del terminale. Ora fai parte del gruppo adm: nella sessione del terminale, ma non nella sessione grafica. Se apri un nuovo terminale in questo momento, il tuo utente non potrà più accedere al gruppo adm.
Controlla se il diario è persistente
I log di systemd possono essere persistenti o volatili. Su Ubuntu e altre distribuzioni sono persistenti per impostazione predefinita. Su Debian 9 sono volatili, nel senso che vengono mantenuti solo in memoria (non su disco) e scompaiono allo spegnimento o al riavvio. Immettere il comando seguente.
journalctl --list-bootsSe qui sono presenti più voci, non devi fare altro. Significa che i diari sono conservati su disco (persistenti). Se ottieni solo una voce, il diario è volatile. Cambialo in persistente.
sudo sed -i '/Storage/ c\Storage=persistent' /etc/systemd/journald.confSeleziona quale diario delle voci di avvio visualizzare
Di solito, vorrai vedere il registro per l'avvio corrente. In rare occasioni vorrai vedere l'avvio precedente, quando qualcosa è andato storto, ad esempio dopo un arresto anomalo del sistema.
Per visualizzare il registro per l'avvio corrente:
journalctl -b 0Per l'avvio precedente, utilizzare "-1" invece di "0" e per due avviamenti fa, "-2" e così via.
journalctl -b -1Naviga e cerca nel diario di sistema
Dopo aver aperto il registro con journalctl, puoi navigare nel testo con i tasti freccia e i tasti PAGINA SU o PAGINA GIÙ. Altri tasti utili sono:
- > per andare alla fine dell'output.
- < per andare all'inizio dell'output.
- / per cercare una stringa di testo. Dopo aver premuto il tasto barra, inserisci la stringa che desideri trovare, seguita da Invio. La stringa fa distinzione tra maiuscole e minuscole, quindi "rete" non troverà le stringhe "Rete". La ricerca inizia dalla posizione di visualizzazione corrente, verso il basso. Per cercare verso l'alto, usa ?.
- n trova la corrispondenza successiva nella ricerca corrente. N trova il precedente.
- q esce dall'utilità journalctl.
Filtra le voci di registro per priorità
A volte vuoi solo cercare errori, ignorando avvisi e messaggi di stato. Ogni voce in un registro ha una priorità: emergenza, avviso, critico, errore, avviso, avviso, informazioni. Questi sono elencati in ordine di importanza, l'emergenza è riservata agli scenari peggiori (sistema inutilizzabile). I messaggi informativi sono solo testo informativo, che riporta lo stato dei programmi che funzionano normalmente.
Per visualizzare solo i messaggi di errore dell'avvio corrente, immettere:
journalctl -b 0 -p errSe vuoi vedere gli errori da tutti gli stivali, rimuovi semplicemente il parametro "-b":
journalctl -p errQuesti sono i codici che puoi passare al parametro "-p":
- mettere in guardia
- critico
- eseguire il debug
- emergente
- errare
- informazioni
- avviso
- avvertimento
Filtra le voci di registro in base al percorso del file eseguibile del processo o dell'unità Systemd
Alcuni processi vengono avviati e gestiti dalle cosiddette unità systemd. Per visualizzare tutti i log relativi all'unità di servizio cron, immettere:
journalctl -u cron.servicePuoi vedere quali unità hai a disposizione con:
systemctl list-dependenciesPuoi navigare nell'elenco con i tasti freccia su e giù. Premi q per uscire.
Se preferisci utilizzare il percorso del file eseguibile del programma (binario), passa semplicemente il percorso completo come argomento.
journalctl /usr/sbin/cronNon dimenticare che puoi anche filtrare in base alla voce di avvio corrente per eliminare i messaggi non necessari.
journalctl -b 0 /usr/sbin/cronConclusione
Journalctl mira a semplificare la ricerca di ciò che stai cercando. Se vuoi conoscere i parametri più avanzati che puoi utilizzare, consulta la pagina manuale del comando journalctl.





