GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Come utilizzare il comando Linux dmesg

Introduzione

Il dmesg command è un'utilità Linux che visualizza i messaggi relativi al kernel recuperati dal buffer ad anello del kernel. Il buffer ad anello memorizza le informazioni sull'hardware, l'inizializzazione del driver del dispositivo e i messaggi dai moduli del kernel che hanno luogo durante l'avvio del sistema.

Il dmesg Il comando è prezioso per la risoluzione dei problemi relativi a errori hardware, avvisi e per la diagnosi di guasti del dispositivo.

In questo tutorial imparerai come usare dmesg comando in Linux.

Prerequisiti

  • Un sistema informatico che esegue Linux.
  • Un account utente con privilegi di amministratore.

Sintassi e opzioni

Il dmesg di base la sintassi del comando è:

dmesg [options]

La tabella seguente elenca i dmesg più comunemente usati opzioni:

Opzione Descrizione
-C, --clear Cancella il buffer dell'anello.
-c, --read-clear Stampa il contenuto del buffer ad anello e quindi cancella.
-f, --facility [list] Limita l'output alla funzione separata da virgole specificata [list] .
-H, --human Abilita un output leggibile dall'uomo.
-L, --color[=auto|never|always] Aggiunge colore all'output. Omettendo il [auto|never|always] il valore predefinito per gli argomenti è auto.
-l, --level [list] Limita l'output all'elenco di livelli separato da virgole specificato.
--noescape Disabilita la funzione di escape automatico dei caratteri non stampabili e potenzialmente non sicuri.
-S, --syslog Istruisce dmesg per usare l'interfaccia del kernel syslog per leggere i messaggi del kernel. L'impostazione predefinita è utilizzare /dev/kmsg invece di syslog .
-s, --buffer-size [size] Utilizza la dimensione del buffer specificata per interrogare il buffer dell'anello del kernel. Il valore predefinito è 16392.
-T, --ctime Stampa timestamp leggibili dall'uomo.
-t, --notime Istruisce dmesg non stampare i timestamp del kernel.
--time-format [format] Stampa i timestamp utilizzando il [format] specificato . I formati accettati sono ctime , reltime , delta e iso (un dmesg implementazione del formato ISO-8601).
-w, --follow Mantiene dmesg in esecuzione e in attesa di nuovi messaggi. La funzione è disponibile solo su sistemi con /dev/kmsg leggibile file.
-x, --decode Decodifica la struttura e i numeri di livello in prefissi leggibili dall'uomo.
-h, --help Visualizza il file della guida con tutte le opzioni disponibili.

Esempi di comando dmesg Linux

Gli esempi sono comuni dmesg casi d'uso dei comandi.

Visualizza tutti i messaggi dal buffer dell'anello del kernel

Invocando dmesg senza alcuna opzione restituisce l'intero buffer del kernel, senza interruzioni e senza alcun modo per navigare nell'output.

sudo dmesg

L'esempio sopra è un dmesg parziale uscita del comando. Per una navigazione più semplice e una migliore leggibilità, invia il pipe dmesg output in un cercapersone terminale come less , more oppure usa grep .

Ad esempio:

sudo dmesg | less

Tubazioni dmesg in less consente di utilizzare la funzione di ricerca per individuare ed evidenziare gli elementi. Attiva la ricerca premendo / . Passa alla schermata successiva utilizzando la Barra spaziatrice o invertire utilizzando la B chiave. Uscire dall'output premendo Q .

Visualizza messaggi colorati

Per impostazione predefinita, dmesg produce un output colorato. Se l'output non è colorato, usa il -L opzione per colorarlo.

sudo dmesg -L

Per disattivare gli output colorati, aggiungi il --color=never opzione per dmesg . Esegui il seguente comando:

sudo dmesg --color=never

Il dmesg predefinito l'output ha ora un colore uniforme.

Visualizza i messaggi non appena arrivano

Monitora il buffer dell'anello del kernel in tempo reale usando il --follow opzione. L'opzione indica al comando di attendere nuovi messaggi relativi all'hardware o ai moduli del kernel dopo l'avvio del sistema.

Esegui il seguente dmesg comando per abilitare il monitoraggio del buffer dell'anello del kernel in tempo reale:

sudo dmesg --follow

Il comando visualizza tutti i nuovi messaggi nella parte inferiore della finestra del terminale. Interrompi il processo utilizzando Ctrl+C .

Cerca un termine specifico

Quando cerchi problemi specifici o messaggi hardware, invia il pipe dmesg output in grep per cercare una stringa o uno schema particolare.

Ad esempio, se stai cercando messaggi sulla memoria, esegui il comando seguente:

dmesg | grep -i memory

L'output mostra tutte le righe del buffer contenente la memory corda. Il -i (ignora maiuscole/minuscole) ignora la sensibilità alla cura.

In alternativa, se stai cercando messaggi di buffer su USB, porte seriali, rete o dischi rigidi, esegui i seguenti comandi:

USB

dmesg | grep -i usb

Porte seriali

dmesg | grep -i tty

Rete

dmesg | grep -i eth

Dischi rigidi

sudo dmesg | grep -i sda

Cerca più termini contemporaneamente aggiungendo il -E opzione per grep e fornendo i termini di ricerca racchiusi tra virgolette, separati da delimitatori di pipe. Ad esempio:

sudo dmesg | grep -E "memory|tty"

L'output stampa tutti i messaggi contenenti uno qualsiasi dei termini di ricerca.

Leggi e cancella i registri dmesg

Il -c (--read-clear ) consente di cancellare il dmesg log dopo averlo stampato. La cancellazione del buffer assicura di avere solo messaggi validi dall'ultimo riavvio.

Esegui il seguente comando:

sudo dmesg -c

Riesecuzione di dmesg non ha output poiché il registro è stato cancellato.

Abilita timestamp nei registri dmesg

Abilita timestamp in dmesg output aggiungendo il -H (--human ), che produce un output leggibile e reindirizza automaticamente l'output a un cercapersone (less ).

Esegui il seguente comando:

sudo dmesg -H

Il comando aggiunge un timestamp con la data e l'ora risolte in minuti. Gli eventi nello stesso minuto sono etichettati con secondi e nanosecondi.

Esci dal cercapersone premendo Q .

Abilita timestamp leggibili dall'uomo

Abilita timestamp leggibili dall'uomo utilizzando il -T (--ctime ) opzione. L'opzione rimuove la precisione di nanosecondi dall'output, ma i timestamp sono più facili da seguire.

sudo dmesg -T

I timestamp nell'output sono date e ora standard e la risoluzione è in minuti. Lo stesso timestamp viene anteposto a ogni azione avvenuta nello stesso minuto.

Scegli il formato del timestamp

Usa il --time-format [format] opzione per scegliere il formato del timestamp. I formati disponibili sono:

  • ctime
  • reltime
  • delta
  • notime
  • iso

Ad esempio, per utilizzare iso formattare, eseguire:

sudo dmesg --time-format=iso

Il formato del timestamp è ora YYYY-MM-DD<T>HH:MM:SS,<microseconds>←+><timezone offset from UTC> .

Limita l'output di dmesg a una struttura specifica

Filtra il dmesg output in una categoria specifica utilizzando il -f opzione. Il sistema raggruppa i messaggi nel buffer dell'anello del kernel nelle seguenti strutture (categorie):

  • kern . Messaggi del kernel.
  • user . Messaggi a livello di utente.
  • mail . Messaggi del sistema di posta.
  • daemon . Messaggi sui demoni di sistema.
  • auth . Messaggi di autorizzazione.
  • syslog . syslogd interno messaggi.
  • lpr . Messaggi del sottosistema della stampante di linea.
  • news . Messaggi del sottosistema delle notizie di rete.

Ad esempio, il comando seguente limita l'output ai messaggi relativi al syslog struttura:

sudo dmesg -f syslog

Per elencare i messaggi da più strutture, specificare un elenco di strutture separate da virgole. Ad esempio:

sudo dmesg -f syslog,daemon

Filtra livelli registro

Il dmesg Il comando associa ogni messaggio del buffer a un livello di log che caratterizza l'importanza del messaggio. I livelli disponibili sono:

  • emerg . Messaggi di emergenza.
  • alert . Avvisi che richiedono un'azione immediata.
  • crit . Condizioni critiche.
  • err . Messaggi di errore.
  • alert . Messaggi di avviso.
  • alert . Condizioni normali ma significative.
  • info . Messaggi informativi.
  • debug . Messaggi a livello di debug.

Istruire dmesg per stampare solo i messaggi che corrispondono a un certo livello usando il -l opzione, seguito dal nome del livello. Ad esempio:

sudo dmesg -l info

L'esempio sopra estrae solo i messaggi informativi dal registro.

Combina più livelli in un elenco separato da virgole per recuperare i messaggi da quei livelli. Ad esempio:

sudo dmesg -l notice,warn

L'output combina i messaggi dai livelli di registro specificati.

Combinazione di struttura e livello

Mostra in modo esplicito la funzione di ciascun messaggio del buffer e il livello di registro all'inizio di ogni riga utilizzando il -x opzione (decodifica).

Ad esempio:

sudo dmesg -x

Nell'esempio sopra, ogni riga è anteposta con la struttura e il livello di registro appropriati.

Leggi il file di registro dmesg

Ogni volta che il sistema si avvia, i messaggi dal buffer circolare del kernel vengono archiviati in /var/log/dmesg file. Il dmesg comando mostra il contenuto del file di registro. In caso di problemi con l'utilizzo di dmesg comando, apri il file di registro in un editor di testo per visualizzare il contenuto.

Nell'esempio seguente, utilizziamo il comando cat per visualizzare il file di registro e inviarlo tramite pipe a grep per cercare una particolare stringa presente nel registro:

cat dmesg | grep amd

Il comando restituisce tutto amd istanze string nel file di registro.

Cerca un'unità CD

Verificare se una macchina remota è dotata di un'unità CD controllando il registro dei messaggi del buffer. Ad esempio, il comando seguente mostra tutti i messaggi sui dispositivi CD inizializzati all'avvio:

sudo dmesg | grep -iE 'cdrom|dvd|cd/rw|cd-rom'

I risultati mostrano informazioni sulle unità CD-ROM disponibili, inclusa l'unità CD-ROM virtuale su questa macchina.

Rimuovi requisito sudo

La rimozione del requisito per i privilegi di superutente consente a qualsiasi utente di eseguire dmesg e visualizzare i messaggi del buffer dell'anello del kernel. Esegui il comando seguente per rimuovere il requisito sudo:

sudo sysctl -w kernel.dmesg_restrict=0

Dopo aver impostato le restrizioni su 0 , qualsiasi utente del sistema può eseguire dmesg .


Ubuntu
  1. Come usare il comando Linux grep

  2. Come usare il comando cronologia in Linux

  3. Come utilizzare il comando Apt-Get in Linux

  4. Come utilizzare il comando sudo in Linux

  5. Come utilizzare il comando hostname in Linux

Come utilizzare il comando xargs di Linux

Come utilizzare il comando tee di Linux

Come utilizzare il comando superiore in Linux

Come utilizzare il comando Ping di Linux

Come utilizzare il comando Dig in Linux

Come utilizzare il comando Linux Top