In questa guida tratterò come visualizzare i log di systemd su Linux utilizzando diverse utilità della riga di comando.
Nota: I comandi menzionati in questa guida vengono eseguiti su Ubuntu. Funzioneranno senza errori su tutte le distribuzioni Linux fornite con il sistema init systemd.
Metodi per visualizzare i registri systemctl
Esistono due approcci per visualizzare i log di systemd su Linux:
systemctl fornisce i log specifici del servizio più recenti, mentre journalctl fornisce log approfonditi a livello di sistema di tutti i servizi e del servizio specifico.
Esplorerò entrambe le utilità per visualizzare i log di systemd. Ma prima, comprendiamo la differenza fondamentale tra i comandi systemctl e journalctl.
Cos'è systemctl
Systemctl è un'utilità della riga di comando che gestisce i servizi systemd, come abilitare o disabilitare il servizio e visualizzare lo stato. IL stato del sistemactl Il comando stampa anche alcune righe di registro del servizio nella parte inferiore dell'output e questo registro è successivo all'avvio recente. Tuttavia, queste righe di registro del servizio risalgono solo a dopo l'avvio corrente.
Cos'è journalctl
journalctl è un'utilità della riga di comando utilizzata per stampare i log raccolti da systemd. Rispetto a systemctl, fornisce un output dettagliato con opzioni di filtro. Questa utilità è progettata per:
- Leggi i registri (il registro più vecchio viene prima)
- Monitorare i log
- Filtra i log in base all'ora, al servizio o all'utente
Il systemd raccoglie i log dal kernel, dai servizi e dai demoni e li archivia in un luogo centralizzato.
Come visualizzare il registro di un servizio utilizzando systemctl
La sintassi generale per trovare il log di un servizio utilizzando il file systemctl l'utilità è menzionata di seguito.
stato del sistemactl [ Nome di Servizio ]Ad esempio, per visualizzare le informazioni di registro del file servizio.smbd utilizzare il comando indicato di seguito.
stato systemctl smbd.service
Per ottenere un output senza impaginazione, aggiungi il file –no-cercapersone opzione nel comando.
stato systemctl smbd.service --no-cercapersone
Come visualizzare il registro di un servizio utilizzando journalctl
Per visualizzare il log di un servizio specifico di systemd, utilizzare journalctl con il -In nome del comando e del servizio o dell'unità.
journalctl -In [ Nome di Servizio ]Nel comando precedente, il -In bandiera, abbreviazione di -unità viene utilizzato per filtrare il journalctl emesso con un nome di unità.
Ad esempio, per stampare il log del smbd demone, sostituirò il file [nome unità] con servizio.smbd .
journalctl -In servizio.smbd
Nell'output, si può vedere che la voce più vecchia viene prima e poi viene registrata dopo ogni avvio.
Per ottenere l'ultima voce, utilizzare prima -È Corto per –fine cercapersone.
journalctl -In servizio.smbd -È
Se vuoi omettere l'impaginazione dall'output, aggiungi semplicemente il file –no-cercapersone nei comandi sopra menzionati.
Per stampare continuamente le voci di registro nell'uso in tempo reale -F Corto per -seguire .
journalctl -In servizio.smbd -FIl filtraggio può essere ulteriormente espanso utilizzando il flag -b, abbreviazione di -stivale , che stampa i log in base all'avvio corrente.
journalctl -In [ nome-unità ] -BStampiamo i log del servizio.smbd dal recente avvio.
journalctl -In servizio.smbd -B
L'output precedente assomiglia all'output che otteniamo utilizzando il file stato del sistemactl comando.
Per ottenere una panoramica dettagliata del registro, utilizzare il file -X Corto per -Catalogare opzione.
journalctl -In servizio.smbd -XVerrà aggiunta una breve descrizione del registro.
Ora, per stampare i registri in base al tempo utilizzando journalctl ci sono due opzioni, -S Corto per -Da E -IN Corto per -Fino a .
journalctl -In [ nome-unità ] -S '[anno-mese-giorno] [ore:minuti:secondi]'Ad esempio, per visualizzare i registri di unit smbd da 2024:01:30 12:05:00 .
journalctl -In servizio.smbd -S '2024:01:30 12:05:00'
Conclusione
Per visualizzare i log systemd di un servizio, esistono due utilità principali, journalctl e systemctl. Il journalctl è specificamente progettato per visualizzare i log di systemd. Tuttavia, systemctl ha anche un'opzione per stampare il registro del servizio. Per stampare il registro di un utilizzo del servizio, journalctl -u [nome-unità] e systemctl [nome-unità].