androide

Comando Dmesg in Linux

Comando dmesg - Visualizar o log do buffer do Kernel do Linux

Comando dmesg - Visualizar o log do buffer do Kernel do Linux

Sommario:

Anonim

Il kernel Linux è il nucleo del sistema operativo che controlla l'accesso alle risorse di sistema, come CPU, dispositivi I / O, memoria fisica e file system. Il kernel scrive vari messaggi nel buffer dell'anello del kernel durante il processo di avvio e quando il sistema è in esecuzione. Questi messaggi includono varie informazioni sul funzionamento del sistema.

Il buffer dell'anello del kernel è una parte della memoria fisica che contiene i messaggi di registro del kernel. Ha una dimensione fissa, il che significa che quando il buffer è pieno, i record dei registri più vecchi vengono sovrascritti.

L'utilità della riga di comando dmesg viene utilizzata per stampare e controllare il buffer dell'anello del kernel in Linux e altri sistemi operativi simili a Unix. È utile per esaminare i messaggi di avvio del kernel e il debug di problemi relativi all'hardware.

In questo tutorial, tratteremo le basi del comando dmesg .

Utilizzando il comando dmesg

La sintassi per il comando dmesg è la seguente:

dmesg

Quando invocato senza alcuna opzione, dmesg scrive tutti i messaggi dal buffer dell'anello del kernel nell'output standard:

dmesg

Per impostazione predefinita, tutti gli utenti possono eseguire il comando dmesg . Tuttavia, su alcuni sistemi, l'accesso a dmesg può essere limitato per utenti non root. In questa situazione, quando si richiama dmesg viene visualizzato un messaggio di errore come di seguito:

dmesg: read kernel buffer failed: Operation not permitted

Il parametro kernel kernel.dmesg_restrict specifica se gli utenti non privilegiati possono utilizzare dmesg per visualizzare i messaggi dal buffer di registro del kernel. Per rimuovere le restrizioni, impostarlo su zero:

sudo sysctl -w kernel.dmesg_restrict=0

Di solito, l'output contiene molte righe di informazioni, quindi è visualizzabile solo l'ultima parte dell'output. Per visualizzare una pagina alla volta, reindirizzare l'output a un'utilità di cercapersone come less o more :

dmesg --color=always | less

--color=always viene --color=always utilizzato per conservare l'output colorato.

dmesg | grep -i usb

dmesg legge i messaggi generati dal kernel dal file virtuale /proc/kmsg . Questo file fornisce un'interfaccia al buffer dell'anello del kernel e può essere aperto solo con un processo. Se il processo syslog è in esecuzione sul tuo sistema e provi a leggere il file con cat o less , il comando si bloccherà.

Il demone syslog scarica i messaggi del kernel in /var/log/dmesg , quindi puoi anche usare quel file di registro:

cat /var/log/dmesg

Formating dmesg Output

Il comando dmesg fornisce una serie di opzioni che consentono di formattare e filtrare l'output.

Una delle opzioni più utilizzate di dmesg è -H ( --human ), che abilita l'output leggibile dall'uomo. Questa opzione esegue il pipe dell'output del comando in un cercapersone:

dmesg -H

Per stampare timestamp leggibili dall'uomo usa l' -T ( --ctime ):

dmesg -T

IPv6: ADDRCONF(NETDEV_CHANGE): wlp1s0: link becomes ready

Il formato timestamp può anche essere impostato usando il --time-format opzione, che può essere ctime, reltime, delta, notime o iso. Ad esempio, per utilizzare il formato delta digitare:

dmesg --time-format=delta

Puoi anche combinare due o più opzioni:

dmesg -H -T

Per guardare l'output del comando dmesg in tempo reale usa l' -w ( --follow ):

dmesg --follow

Filtraggio dmesg Output

È possibile limitare l'output di dmesg a determinate strutture e livelli.

La funzione rappresenta il processo che ha creato il messaggio. dmesg supporta le seguenti funzionalità di registro:

  • kern - user messaggi del kernel - messaggi a livello di utente mail - daemon sistema di posta - auth demoni di sistema - messaggi di sicurezza / autorizzazione syslog - messaggi di syslogd interni lpr - sottosistema stampante di linea news - sottosistema news rete

--facility ( --facility ) consente di limitare l'output a strutture specifiche. L'opzione accetta una o più strutture separate da virgola.

Ad esempio, per visualizzare solo i messaggi del kernel e dei demoni di sistema dovresti usare:

dmesg -f kern, daemon

Ogni messaggio di registro è associato a un livello di registro che mostra l'importanza del messaggio. dmesg supporta i seguenti livelli di registro:

  • emerg - sistema non utilizzabile alert - l'azione deve essere intrapresa immediatamente crit - condizioni critiche err - condizioni di errore warn - avviso condizioni di notice - info condizioni normali ma significative - debug informativo - messaggi a livello di debug

Il -l ( --level ) limita l'output a livelli definiti. L'opzione accetta uno o più livelli separati da virgola.

Il seguente comando visualizza solo i messaggi di errore e critici:

dmesg -l err, crit

Svuotare il Ring Ring Buffer

L'opzione -C ( --clear ) consente di cancellare il buffer dell'anello:

sudo dmesg -C

Solo il root o gli utenti con privilegi sudo possono cancellare il buffer.

Per stampare il contenuto del buffer prima di cancellare utilizzare l' -c ( --read-clear ):

sudo dmesg -c

dmesg > dmesg_messages

Conclusione

Il comando dmesg consente di visualizzare e controllare il buffer dell'anello del kernel. Può essere molto utile durante la risoluzione dei problemi del kernel o dell'hardware.

Digita man dmesg nel tuo terminale per informazioni su tutte le opzioni di dmesg disponibili.

terminale del kernel dmesg