Come visualizzare i registri Systemctl

Come Visualizzare I Registri Systemctl



Il systemd è uno dei sistemi init ampiamente adottati su Linux. Il vantaggio principale di systemd è la sua capacità di gestire i log di sistema. Raccoglie tutti i messaggi del kernel e i processi utente in un registro chiamato rivista . IL registrato su giornale è il demone che cattura e gestisce i log in un file binario. Questo demone ha il vantaggio principale di archiviare i dati in formato strutturato e indicizzato, facilitandone l'accesso e l'analisi tramite il file journalctl utilità.

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 -F

Il 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à ] -B

Stampiamo 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 -X

Verrà 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à].