Come utilizzare journalctl per leggere i registri di sistema di Linux
Fatmawati Achmad Zaenuri/Shutterstock
La registrazione del sistema Linux è cambiata con l'introduzione di |_+_|. Impara a usare il |_+_| comando per leggere e filtrare i messaggi del registro di sistema.
Registrazione centralizzata
Non estraneo alle polemiche, il |_+_| responsabile del sistema e del servizio ha introdotto un cambiamento significativo nel modo in cui vengono raccolti i registri di sistema. I log si trovavano in posti diversi nel file system a seconda del servizio o del demone che li stava creando. Ma avevano tutti una cosa in comune. Erano semplici file di testo.
Con |_+_| tutti i file di registro di sistema, avvio e kernel vengono raccolti e gestiti da una soluzione di registrazione centrale e dedicata. Il formato in cui sono memorizzati è binario. Una cosa che questo facilita è la possibilità di estrarre i dati in diversi formati, come ad esempio JSON , come vedremo.
può anche rendere più semplice il riferimento incrociato di informazioni correlate che sarebbero state precedentemente registrate in file di registro separati. Poiché i dati sono ora conservati in un unico giornale, i dati provenienti da diverse fonti di interesse possono essere selezionati e visualizzati in un unico elenco di voci intrecciate.
|_+_| è lo strumento lavoravo con il giornale .
journalctl senza fronzoli
Puoi invocare |_+_| senza parametri della riga di comando:
systemd
|_+_| visualizza l'intero giornale, con le voci più vecchie in cima all'elenco. L'elenco viene visualizzato in |_+_|, consentendo di sfogliare e cercare utilizzando le consuete funzionalità di navigazione di |_+_|. Puoi anche usare il |_+_| e |_+_| tasti per scorrere lateralmente per leggere ampie voci di registro.
Premendo |_+_| key passerà direttamente in fondo all'elenco e alle voci di registro più recenti.
Premi |_+_| uscire.
IMPARENTATO: Come usare il comando less su Linux
Sebbene |_+_| può essere chiamato senza usare |_+_|, ti assicurerai di vedere tutti i dettagli all'interno del log se usi |_+_|.
journalctl
Se necessario, puoi fare |_+_| invia il suo output alla finestra del terminale invece che a |_+_|, utilizzando |_+_| opzione.
systemd
L'output scorre rapidamente attraverso la finestra del terminale e si torna al prompt dei comandi.
Per limitare il numero di righe che |_+_| restituisce, usa |_+_| (linee) opzione. Chiediamo dieci righe di output:
systemd
In seguito agli aggiornamenti della rivista
Per fare |_+_| visualizzare le voci più recenti non appena arrivano nel diario, utilizzare |_+_| (segui) opzione.
journalctl
Annuncio pubblicitario
La voce più recente ha un timestamp di 07:09:07. Man mano che si svolge una nuova attività, le nuove voci vengono aggiunte nella parte inferiore del display. Aggiornamenti quasi in tempo reale: fantastico!
Alle 07:09:59 un'applicazione chiamata |_+_| ha inserito una voce di registro nel diario che diceva: Nuovo messaggio da HTG.
Modifica del formato di visualizzazione
Poiché il journal è un file binario, i dati in esso contenuti devono essere tradotti o analizzati in testo prima di poter essere visualizzati. Con parser diversi, è possibile creare formati di output diversi dagli stessi dati di origine binaria. Esistono diversi formati che |_+_| poter usare.
L'output predefinito è il formato breve, molto simile al classico formato del registro di sistema. Per richiedere esplicitamente il formato breve, utilizzare il |_+_| (output) con l'opzione |_+_| modificatore.
journalctl
Da sinistra a destra, i campi sono:
- L'ora in cui è stato creato il messaggio, nell'ora locale.
- Il nome dell'host.
- Il nome del processo. Questo è il processo che ha generato il messaggio.
- Il messaggio di registro.
Per ottenere una data e ora complete utilizzare il |_+_| modificatore:
journalctl
I formati di data e ora in questo output sono il formato in cui è necessario fornire date e ore quando si selezionano i messaggi di registro per periodo, come vedremo a breve.
Annuncio pubblicitarioPer vedere tutti i metadati che accompagnano ogni messaggio di log, usa il |_+_| modificatore.
less
Là ci sono molti campi possibili , ma è raro che tutti i campi siano presenti in un messaggio.
Un campo che vale la pena discutere è |_+_| campo. In questo esempio ha valore 6. Il valore rappresenta l'importanza del messaggio:
- & rsaquo; Cyber Monday 2021: le migliori offerte tecnologiche
- & rsaquo; Cyber Monday 2021: le migliori offerte Apple
- › La cartella del computer è 40: come la star di Xerox ha creato il desktop
- › 5 siti Web che ogni utente Linux dovrebbe aggiungere ai segnalibri
- › Come trovare il tuo Spotify Wrapped 2021
- › Funzioni e formule in Microsoft Excel: qual è la differenza?
Se vuoi che l'output sia presentato come correttamente formato Notazione oggetto JavaScript (JSON), usa |_+_| modificatore:
less
Ogni messaggio è avvolto correttamente come un oggetto JSON ben formato e visualizzato un messaggio per riga di output.
Per avere l'output JSON bella stampata , usa |_+_| modificatore.
Left Arrow
Annuncio pubblicitario
Ogni oggetto JSON è suddiviso su più righe, con ogni coppia nome-valore su una nuova riga.
Per visualizzare solo i messaggi delle voci di registro, senza timestamp o altri metadati, utilizzare |_+_| modificatore:
Right Arrow
Questo formato di visualizzazione può rendere difficile identificare quale processo ha generato l'evento di registro, sebbene alcuni messaggi contengano un indizio.
Selezione dei messaggi di registro per periodo di tempo
Per limitare l'output da |_+_| a un periodo di tempo che ti interessa, usa il |_+_| (dal) e |_+_| (fino a) opzioni.
Per vedere le voci di registro da una determinata ora e data, utilizzare questo comando:
End
Il display contiene solo i messaggi arrivati dopo la data e l'ora del comando.
Annuncio pubblicitario
Per definire un periodo di tempo per il quale si desidera segnalare, utilizzare entrambi i |_+_| (dal) e |_+_| (fino a) opzioni insieme. Questo comando esamina i messaggi di registro da un periodo di tempo di 15 minuti.:
Ctrl+C
Questa è un'ottima combinazione da usare se sai che è successo qualcosa di strano sul tuo sistema e approssimativamente quando è successo.
Utilizzo di periodi di tempo relativi
È possibile utilizzare l'indirizzamento relativo quando si selezionano i periodi di tempo. Ciò significa che puoi dire cose come mostrami tutti gli eventi da un giorno fa fino ad ora. Questo è proprio ciò che significa questo comando. La d sta per giorno e -1 significa un giorno nel passato.
journalctl
I messaggi di registro sono elencati dalle 00:00:00 di ieri, fino ad ora.
Se vuoi indagare su qualcosa che è successo nel passato recente, puoi specificare un periodo di tempo relativo misurato in ore. Qui stiamo esaminando i messaggi di registro dell'ultima ora:
sudo
Vengono visualizzati i messaggi dell'ultima ora. È inoltre possibile utilizzare m per impostare periodi di tempo relativi misurati in minuti e w per settimane.
Annuncio pubblicitario
|_+_| comprende |_+_|, |_+_| e |_+_|. Questi modificatori forniscono un modo pratico per specificare periodi di tempo comuni. Per vedere tutti gli eventi accaduti ieri, usa questo comando:
sudo
Tutti gli eventi del registro del diario che si sono verificati ieri, fino a mezzanotte 00:00:00, vengono recuperati e visualizzati per te.
Per vedere tutti i messaggi di registro ricevuti finora, usa questo comando:
journalctl
Viene visualizzato tutto dalle ore 00:00:00 fino all'ora in cui viene impartito il comando.
Sei in grado di mescolare i diversi modificatori del periodo di tempo. Per vedere tutto da due giorni fa fino all'inizio di oggi, usa questo comando:
less
Tutto dall'altro ieri fino ad oggi viene recuperato e visualizzato.
Selezione dei messaggi di registro in base ai campi dati
Puoi cercare i messaggi di registro che corrispondono a una vasta gamma di campi di riviste . Queste ricerche cercano di trovare corrispondenze nei metadati allegati a ciascun messaggio. Si consiglia di fare riferimento all'elenco dei campi e scegli quelli che ti saranno più utili.
Annuncio pubblicitarioTieni presente che se un'applicazione completa o meno ogni campo dipende interamente dagli autori dell'applicazione. Non puoi garantire che tutti i campi vengano compilati.
Tutti i modificatori del campo journal vengono utilizzati allo stesso modo. Ne useremo alcuni nei nostri esempi di seguito. Per cercare i messaggi di registro da un'applicazione specifica, utilizzare |_+_| (comando) modificatore. Se usi anche |_+_| (segui) opzione, |_+_| terrà traccia dei nuovi messaggi da questa applicazione non appena arrivano.
--no-pager
È possibile cercare le voci di registro utilizzando il ID processo del processo che ha generato il messaggio di log. Usa il |_+_| comando per trovare il ID processo del demone o dell'applicazione che stai per cercare .
journalctl
Sulla macchina utilizzata per la ricerca di questo articolo, il SSH demone è il processo 751.
Puoi anche cercare per ID utente . Questo è l'ID utente della persona che ha avviato l'applicazione o il comando o che possiede il processo.
-n
Tutti i messaggi associati a qualsiasi altro ID utente vengono filtrati. Vengono visualizzati solo i messaggi relativi all'utente 1000:
Un altro modo per cercare i messaggi di registro relativi a un'applicazione specifica consiste nel fornire il percorso dell'eseguibile.
journalctl
Tutti i |_+_| i messaggi di registro dello scheduler vengono recuperati e visualizzati .
Annuncio pubblicitario
Per facilitare la ricerca, possiamo chiedere |_+_| per elencare tutti i valori che contiene, per qualsiasi campo del journal.
Per vedere gli ID utente che |_+_| ha registrato messaggi di registro per, utilizzare |_+_| (campi) e passare l'opzione |_+_| identificatore di campo.
-f
Ripetiamolo e guardiamo il ID di gruppo (GID):
geek-app
Puoi farlo con uno qualsiasi dei identificatori di campo giornale .
Elenco dei messaggi del kernel
C'è un modo integrato per isolare rapidamente i messaggi del kernel. Non è necessario cercarli e isolarli da soli. Il |_+_| L'opzione (kernel) rimuove tutti gli altri messaggi e offre una vista istantanea delle voci di registro del kernel.
journalctl
L'evidenziazione riflette l'importanza del messaggio, secondo i valori del |_+_| campo.
Revisione dei messaggi di avvio
Se hai un problema relativo all'avvio che desideri indagare, |_+_| ti ha coperto. Forse hai aggiunto nuovo hardware e non risponde, o un componente hardware precedentemente funzionante non funziona più dopo l'ultimo aggiornamento del sistema.
Per vedere le voci di registro relative al tuo ultimo avvio, usa |_+_| (avvio) opzione:
-o
Le voci di registro per l'ultimo avvio vengono mostrate per te.
Quando diciamo ultimo avvio, intendiamo il processo di avvio che ha dato vita al tuo computer per la tua sessione di accesso corrente. Per vedere gli stivali precedenti, puoi usare un numero per dire |_+_| quale avvio ti interessa. Per vedere il terzo avvio precedente, usa questo comando:
short
Generalmente, se hai avuto un problema e hai dovuto riavviare la tua macchina, è una sequenza di avvio precedente che ti interessa. Quindi questo è un modulo di comando comune.
È facile confondersi con la sequenza degli stivali. Per aiutare, possiamo chiedere |_+_| per elencare gli stivali che ha registrato nel suo diario, usando il |_+_| opzione.
short-full
È possibile identificare l'avvio per il quale si desidera visualizzare i messaggi dalla data e dall'ora, quindi utilizzare il numero nella colonna di sinistra per ottenere i messaggi di registro per quella sequenza di avvio. Puoi anche scegliere l'identificatore di avvio a 32 bit e passarlo a |_+_|.
verbose
Annuncio pubblicitario
I messaggi di registro dalla sequenza di avvio che abbiamo richiesto vengono recuperati e visualizzati.
Gestione dello spazio sul disco rigido del journal
Naturalmente, il diario e tutti i suoi messaggi di registro sono archiviati sul disco rigido. Ciò significa che occuperanno spazio sul disco rigido. Per vedere quanto spazio è stato occupato dal journal, usa il |_+_| opzione.
Priority
Con i dischi rigidi di oggi, 152 MB non sono affatto molto spazio, ma a scopo dimostrativo, lo ridurremo comunque. Ci sono due modi in cui possiamo farlo. Il primo consiste nell'impostare un limite di dimensione a cui si desidera ridurre il diario. Ricrescerà, ovviamente, ma possiamo potarlo ora pronto per quella nuova crescita.
Useremo il meraviglioso titolo |_+_| opzione e passare nella dimensione a cui vorremmo ridurre il diario. Ti chiederemo 100 MB. Il modo di pensare a questo è che stiamo chiedendo |_+_| buttare via tutto quello che puoi, ma non scendere sotto i 100 MB.
json
L'altro modo per ridurre la dimensione del journal è usare |_+_| opzione. Questa opzione dice |_+_| per eliminare i messaggi più vecchi del periodo fornito sulla riga di comando. Puoi usare |_+_|, |_+_|, |_+_| e |_+_| nel periodo di tempo.
Eliminiamo tutti i messaggi più vecchi di una settimana:
json-pretty
Dati vs. Informazioni
I dati non sono utili a meno che tu non possa accedervi e farne uso. Allora diventa un'informazione utile. Il |_+_| command è uno strumento flessibile e sofisticato che consente di accedere alle informazioni di interesse in svariati modi.
Puoi utilizzare praticamente qualsiasi frammento di informazioni che devi inserire nei messaggi di registro di cui hai bisogno.
IMPARENTATO: I migliori laptop Linux per sviluppatori e appassionati
LEGGI SUCCESSIVODave McKay ha usato per la prima volta i computer quando era in voga il nastro di carta perforata, e da allora ha programmato. Dopo oltre 30 anni nel settore IT, ora è un giornalista tecnologico a tempo pieno. Durante la sua carriera ha lavorato come programmatore freelance, manager di un team internazionale di sviluppo software, project manager di servizi IT e, più recentemente, come Data Protection Officer. I suoi scritti sono stati pubblicati da howtogeek.com, cloudavvyit.com, itenterpriser.com e opensource.com. Dave è un evangelista di Linux e un sostenitore dell'open source.
Leggi la biografia completa