Vuoi sapere come accedere ai log di systemd? Usando journalctl è possibile visualizzare i log e filtrarli anche in base al tipo per identificare più facilmente gli errori.
In questa guida vedremo come fare a leggere i log e filtrarli, ma anche come configurare il journal in modo da decidere se mantenere i log sul disco, fare pulizia e impostare una dimensione limite.
Iniziamo!
Indice
Cos’è journalctl
Journalctl è uno strumento accessibile da linea di comando che ci permette di visualizzare e filtrare i log di systemd. Systemd ha, infatti, integrato un suo sistema di logging che viene chiamato journal, da cui il nome journalctl.
In base alla distribuzione che stai usando e quindi anche alla configurazione di default, è possibile che i log siano memorizzati automaticamente sul disco o che siano mantenuti solo nella RAM, in quest’ultimo caso i log verranno mantenuti solo fino al riavvio. Come vedremo è possibile modificare queste impostazioni in modo da scegliere se memorizzare i log.
Come leggere i log con journalctl
Accedendo al journal possiamo identificare errori e monitorare lo stato del sistema.
Vediamo come fare a leggere i log usando delle opzioni che ci permettono di organizzare meglio i risultati che ci vengono mostrati, ad esempio mostrando prima i log più recenti.
Mostrare tutti i log
Se richiamiamo lo strumento senza usare nessuna opzione, possiamo avere la lista di tutti i log. I messaggi ci vengono mostrati dal meno recente al più recente.
Ci basta dare il comando:
journalctl
I risultati verranno mostrati in pagine, possiamo usare il tasto “Invio” per scorrere nei log e se vogliamo interrompere e uscire ci basta premere “Q“.

Per mostrare tutto il contenuto dei log nel terminale, senza dividere l’output in pagine, ci basta usare l’opzione –no-pager, in questo modo:
journalctl --no-pager
Mostrare prima i log più recenti
Possiamo visualizzare i log in ordine inverso, dal più al meno recente usando il comando in questo modo:
journalctl -r
Anche in questo caso i risultati saranno mostrati in pagine, ma stavolta andando avanti con le pagine vedremo via via i messaggi più vecchi.
Mostrare i log in tempo reale
Quando usiamo il comando journalctl, stiamo visualizzando ciò che è stato memorizzato nei log finora. Se invece vogliamo monitorare cosa sta succedendo proprio in un determinato momento, è utile visualizzare i log in tempo reale.
Per farlo usiamo il comando con l’opzione -f, così:
journalctl -f
Per terminare la visualizzazione in tempo reale usiamo “Ctrl+C” per uscire.
Visualizzare i log di un determinato avvio
Possiamo restringere i log all’ultimo avvio o anche controllare i log di un avvio specifico, ad esempio selezionandolo in base alla data.
In questo caso può essere utile prima di tutto ottenere la lista degli avvi:
journalctl –-list-boots
Questo ci mostrerà data e ora degli ultimi avvi con orario di accensione e spegnimento. Accanto a ogni voce del registro vediamo un numero e un ID possiamo usare l’uno o l’altro per vedere i log di quell’avvio, vediamolo con un esempio.
Prendendo come esempio quest’output:
-53 4e28737084254e31b39a421992016229 Sat 2026-02-07 20:58:53 CET Sat 2026-02-07 21:01:02 CET
-52 6ccd761e151b493b8e5ec668a34b6d58 Sun 2026-02-08 09:59:08 CET Sun 2026-02-08 11:23:45 CET
Per visualizzare i log dell’avvio del 07 febbraio, posso indicare il numero dell’avvio (-53) oppure l’ID.
Usando il numero dell’avvio mi basta dare il comando in questo modo:
journalctl -b -53
Altrimenti usando l’ID:
journalctl -b 4e28737084254e31b39a421992016229
Posso usare questa stessa opzione, -b, anche per visualizzare i log memorizzati dall’ultimo avvio:
journalctl -b
Oppure dell’avvio precedente a quello corrente:
journalctl -b -1
E così via andando a ritroso.
Visualizzare i log di un periodo di tempo
Oltre a filtrare i log in base agli avvii del sistema, possiamo anche restringere i risultati in base al tempo scegliendo se impostare:
- una data di inizio, per vedere ad esempio tutti i log a partire dal 1 gennaio;
- una data di fine, per vedere tutti i log fino al 15 febbraio;
- entrambe le date, per creare un intervallo e poter vedere i log dal 1 gennaio al 15 febbraio.
Per farlo usiamo le opzioni -S (che sta per –since e si usa per la data di inizio) e -U (che sta per –until e indica la data di fine). Dovremo indicare la data seguendo questo formato:
YYYY-MM-DD HH:MM:SS
Nota: non è necessario specificare l’orario, se non lo indichiamo verrà usato l’orario di default 00:00:00.
In alternativa possiamo anche usare delle stringhe comuni per indicare la data, come “yesterday” o “today”.
Chiariamo il tutto meglio con degli esempi.
Visualizzare i log a partire dal 10 febbraio:
journalctl -S 2026-02-10
Mostrare i log fino al 15 febbraio:
journalctl -U 2026-02-15
Mostrare i log dal 10 al 12 febbraio:
journalctl -S 2026-02-10 -U 2026-02-12
Mostrare i log a partire da ieri:
journalctl -S yesterday
Altri modi di filtrare i log con journalctl
Finora abbiamo visto come filtrare i log usando journactl con opzioni che ci permettono di restringere gli avvisi a determinati periodi di tempo ad esempio visualizzando solo i log più recenti o quelli fino a una certa data.
In questa sezione andremo a vedere come applicare altri filtri che ci permettono di trovare più facilmente gli avvisi che vogliamo verificare.
Mostrare i log del kernel
L’opzione -k di journalctl ci permette di avere come output solo i log del kernel.
journalctl -k
L’output sarà la lista dei log del kernel e mostrerà solo i risultati dell’ultimo avvio. Se vogliamo mostrare i log di un avvio specifico possiamo usare l’opzione -b come abbiamo visto prima, ad esempio per mostrare i dati dell’avvio precedente a quello corrente, possiamo usare il comando:
journalctl -k -b -1
Filtrare i log in base al tipo
A ogni messaggio nel journal viene associata una priorità in base alla gravità dell’avvio stesso, in particolare il valore più basso indica la priorità maggiore e quindi un avviso che può avere un impatto più critico:
- 0 per Emergency (emerg)
- 1 per Alert (alert)
- 2 per Critical (crit)
- 3 per Error (err)
- 4 per Warning (warning)
- 5 per Notice (notice)
- 6 per Inform (info)
- 7 per Debug (debug).
Se vogliamo visualizzare solo i log di una certa priorità, ci basta usare l’opzione -p seguita dal valore di priorità come valore numerico o con l’abbreviazione (puoi vederle tra parentesi nella lista qui sopra).
Per esempio per visualizzare solo gli errori critici possiamo usare uno dei due comandi:
journalctl -p 2
journalctl -p crit
Filtrare i log per processo, utente o gruppo
Possiamo anche restringere i log in base a un servizio, a un processo specifico, a un utente o ad un gruppo.
Per filtrare per servizio, ci basta usare l’opzione -u, per esempio:
journalctl -u ssh
Passiamo ora ai processi, usando i comandi per gestire i processi, ad esempio top, possiamo identificare l’ID dei processi.
Una volta che conosciamo il PID, cioè l’ID del processo che vogliamo monitorare, possiamo filtrare i log per quello specifico processo (o sottoprocesso di un’applicazione), ci basterà indicare il PID come in questo esempio:
journalctl _PID=1255

Per identificare utenti e gruppi possiamo usare rispettivamente uid e gid. Se non conosciamo gli ID possiamo usare il comando id come abbiamo visto nella guida per gestire gli utenti su Linux.
Una volta ottenuto uid o gid, possiamo filtrare i log.
Per vedere i log di uno specifico utente usiamo il comando specificando l’uid, in questo modo:
journalctl _UID=1001
Per un gruppo, specifichiamo l’id del gruppo (gid), come in questo esempio:
journalctl _GID=1001
Se uno di questi comandi ci restituisce un avviso “No entries”, vuol dire che non ci sono log per quell’utente o gruppo. Può darsi che l’ID che abbiamo indicato non sia corretto o che non ci siano log per quell’utente o gruppo.
Possiamo sapere gli ID di tutti gli utenti che sono registrati nei log usando l’opzione field che ci permette di vedere tutti i possibili valori per uno specifico campo.
Con il comando seguente possiamo conoscere tutti gli ID degli utenti nel journal:
journalctl -F _UID
Mentre con questo possiamo conoscere gli ID dei gruppi:
journalctl -F _GID
Come gestire i log
Possiamo scegliere se far sì che i log siano scritti sul disco o mantenuti solo nella RAM, inoltre possiamo controllare qual è lo spazio occupato sul disco e fare pulizia dei log più vecchi. Vediamo come fare.
Scegliere se memorizzare i log
Possiamo decidere se scrivere i log sul disco e quindi averli a disposizione anche dopo lo spegnimento oppure se tenerli solo in RAM. Nella seconda ipotesi i log verranno eliminati ogni volta che si spegne il computer.
Per modificare questa opzione possiamo modificare il file di configurazione, journald.conf che si trova, in genere, a questo percorso:
/etc/systemd/journald.conf
L’opzione da modificare è “Storage=”.
Possiamo impostare uno di questi valori in base a come decidiamo di memorizzare i log:
- persistent – con questa opzione i log verranno memorizzati sul disco, in genere in /var/log/journal.
- volatile – se impostiamo questo valore, i log saranno memorizzati solo nella RAM.
- auto – con questa opzione i dati saranno memorizzati sul disco se esiste la cartella /var/log/journal, altrimenti saranno mantenuti solo nella RAM;
- none – permette di disattivare completamente la memorizzazione dei log.
Nell’esempio qui sotto, l’opzione è impostata come Storage=persistent in modo da memorizzare i log sul disco.

Se necessario possiamo spostare i dati memorizzati nella RAM e scriverli sul disco usando questo comando:
journalctl --flush
Come conoscere lo spazio occupato dai log
Per sapere quanto spazio occupano i log sul disco, possiamo usare il comando seguente:
journalctl --disk-usage
L’output ci indicherà la dimensione dei journal.

Come eliminare i log più vecchi
Se vogliamo ridurre la dimensione dei journal, possiamo ripulire i log andando ad eliminare i messaggi più vecchi. Possiamo farlo con due metodi diversi:
- impostare una dimensione limite ed eliminare tutti i log più vecchi finché il file non raggiunge le dimensioni da noi indicate;
- eliminare i messaggi più vecchi rispetto al periodo specificato.
Vediamo come.
Per impostare una dimensione limite e andare ad eliminare tutte le entry più vecchie fino a raggiungere la dimensione richiesta per i file di journal, usiamo l’opzione --vacuum-size, in questo modo:
sudo journalctl --vacuum-size=100M
Se l’operazione va a buon fine, l’output ci indicherà quanto spazio è stato liberato con un messaggio come questo:
Vacuuming done, freed 221.1M of archived journals from /var/log/journal/[...]
Possiamo anche conservare solo i log più recenti andando ad eliminare quelli precedenti a una determinata data, in questo caso dovremo usare l’opzione --vacuum-time, in questo modo:
sudo journalctl --vacuum-time=1month
Nell’esempio qui sopra stiamo eliminando i log più vecchi di un mese, possiamo anche indicare il tempo in:
- secondi con
s - minuti con
m - ore con
h - giorni con
days - settimane con
weeks - anni con
years.
Come impostare una dimensione massima per i file di log
Dal file di configurazione che abbiamo visto prima, journald.conf, possiamo anche impostare dei limiti per la dimensione dei file di journal sul disco e un limite di memoria nel caso in cui la memorizzazione avvenga solo nella RAM.
Queste sono le opzioni che vengono applicate quando i file sono memorizzati su disco (persistent):
SystemMaxUse: indica quanto spazio sul disco può occupare il journal.SystemKeepFree: indica quanto spazio sul disco deve lasciare libero.SystemMaxFileSize: serve a impostare una dimensione massima per i singoli file di journal.SystemMaxFiles: specifica quanti file di journal possono essere mantenuti. Di default è impostato a 100.
Se vogliamo controllare le impostazioni per i journal memorizzati solo nella RAM (volatile), andiamo a modificare queste opzioni:
RuntimeMaxUse: spazio massimo che può essere usato (nella memoria volatile).RuntimeKeepFree: spazio che deve essere lasciato libero.RuntimeMaxFileSize: dimensione massima dei singoli file.RuntimeMaxFiles: numero massimo di file, di default sono 100.
Conclusioni
Esaminando il journal, cioè il registro dei log, è possibile fare debug delle applicazioni e trovare errori. Abbiamo visto come si usa il comando journalctl sia per accedere semplicemente ai log più recenti che per filtrarli. Inoltre abbiamo visto come fare a fare pulizia dei log più vecchi in modo da non occupare troppo spazio.
E tu conoscevi già questa utility di Linux? Facci sapere nei commenti.
Pronto a costruire il tuo sito WordPress?
Prova il nostro servizio gratuitamente per 14 giorni. Nessun impegno, nessuna carta di credito richiesta.