Cosa fa e come usare il comando dmesg Linux

I sistemi operativi Linux offrono centinaia di comandi che sono stati sviluppati per offrire le migliori strutture di amministrazione per gli utenti, sia a livello di hardware, software, servizi o processo, in cui ogni comando svolge una funzione speciale e può o meno visualizzare risultati migliori. . Conosciamo l'affidabilità e l'integrità delle distribuzioni Linux, ma come qualsiasi sistema operativo o applicazione, potrebbe arrivare un momento in cui alcuni dei suoi componenti si guastano e invece di perdere tempo a cercare migliaia di cause, possiamo usare un comando che semplificherà questo process ed è il comando dmesg.

Solvetic farà un'analisi completa di cosa sia dmesg e quanto sia attuale in Linux e quindi ci renderemo conto che diventa un ottimo strumento di aiuto per tutte le attività di supporto.

Cos'è dmesgIl comando dmesg viene utilizzato per scrivere messaggi del kernel su Linux e altri sistemi operativi simili a Unix sullo standard output in un modo molto più organizzato. Ricorda che il kernel è il cuore del sistema operativo, è lì che il sistema operativo viene caricato in memoria al momento dell'avvio del computer e il kernel è in grado di controllare quasi tutto nel sistema. Grazie a questo processo vengono generati numerosi messaggi dal kernel che compaiono sullo schermo del display durante il processo di avvio.

Il comando dmesg ottiene i dati leggendo il buffer circolare del kernel. Fondamentalmente un buffer è una parte della memoria del computer che è riservata come luogo temporaneo per i dati che vengono inviati o ricevuti da un dispositivo esterno, come un disco rigido, una tastiera, ecc., mentre un buffer ad anello è un buffer di dimensioni fisse in cui eventuali nuovi dati aggiunti sovrascriveranno i dati più vecchi memorizzati lì. dmesg è usato per esaminare o controllare il buffer circolare del kernel e l'azione predefinita è visualizzare tutti i messaggi dal buffer circolare del kernel.

I messaggi generati dal kernel sono una parte fondamentale delle attività di diagnostica poiché, in caso di guasto del dispositivo, avremo a portata di mano un riepilogo di quanto accaduto e adotteremo così le necessarie misure di supporto. Quando si connette o disconnette un dispositivo hardware nel sistema, grazie al comando dmesg, sarà possibile conoscere le informazioni rilevate o disconnesse in tempo reale e, soprattutto, il comando dmesg è disponibile nella maggior parte dei sistemi operativi basati su Linux e Unix .

1. Usa il comando dmesg su Linux

Passo 1
L'uso di base di questo comando è eseguirlo senza parametri:

 Dmesg 
Passo 2
Ciò comporterà la visualizzazione di tutti i messaggi del kernel:

INGRANDIRE

Passaggio 3
A causa di tutte le informazioni visualizzate, è difficile svolgere attività di amministrazione lì. Possiamo usare il parametro "-H" per dire a dmesg che l'output è leggibile per gli utenti, il che semplificherà le attività di supporto. Lì troviamo dettagli molto più chiari sull'anello del kernel.

 dmesg -H

INGRANDIRE

Passaggio 4
Un'altra alternativa per eseguire un'analisi con dmesg è con il parametro "-w", che ci consente di scrivere uno script per analizzare il risultato utilizzando un'espressione regolare per filtrare gli eventi per un'analisi successiva:

 dmesg -w

INGRANDIRE

Passaggio 5
Possiamo vedere che i risultati sono generalmente abbondanti, è possibile limitare l'output ai soli errori e avvisi per non analizzare tutto ciò che accade nel sistema internamente e per questo il comando dmesg ha otto livelli da utilizzare, dove ognuno dei quali possono essere combinati per effettuare una ricerca molto più completa e specifica, questi livelli sono:

è emersoIl sistema non può essere utilizzato

mettere in guardiaDevi agire immediatamente.
criticoCondizioni critiche.
errCondizioni di errore.
avvisareCondizioni di allerta.
AvvisoCondizioni normali, ma con possibili guasti.
Informazioniinformazione.
eseguire il debugMessaggi di debug.

Passaggio 6
Possiamo utilizzare diversi tipi di livelli, ad esempio possiamo eseguire quanto segue:

 dmesg --level = avviso, informazioni 

INGRANDIRE

Passaggio 7
I risultati dipendono dallo stato del kernel:

 dmesg --level = err, avverte 

INGRANDIRE

2. Visualizza timestamp e dettagli con il comando dmesg

Passo 1
Utilizzando dmesg sarà possibile conoscere in dettaglio a che ora si è verificato un errore o un avviso grazie al parametro -T, possiamo eseguirlo come segue:

 dmesg --level = err, avverte -T 

INGRANDIRE

Passo 2
Lì vediamo i dettagli dell'ora e della data dell'evento. Possiamo specificare un dispositivo specifico per visualizzare i risultati generati da dmesg, per questo specifichiamo il nome del dispositivo come segue:

 dmesg | grep -i enp0s3 

INGRANDIRE

Passaggio 3
Se vogliamo limitare l'output di dmesg solo ai messaggi dello spazio utente, utilizzeremo l'opzione "-u":

 dmesg -u

INGRANDIRE

Passaggio 4
Possiamo usare strumenti di manipolazione del testo, come more (more) o les (less) insieme a 'grep' con il comando dmesg, il motivo è che l'output del record dmesg non si adatta a una singola pagina, possiamo utilizzare una delle seguenti opzioni:

 dmesg | più dmesg | meno

INGRANDIRE

Passaggio 5
Se vogliamo scoprire quali dischi rigidi ha rilevato il kernel, è possibile cercare la parola chiave "sda" insieme a "grep" per visualizzare questo risultato in questo modo:

 dmesg | grep sda

INGRANDIRE

Passaggio 6
Possiamo usare il parametro "head" insieme a dmesg per mostrare il numero di righe di partenza desiderate, per visualizzare solo le prime 15 righe eseguiamo:

 dmesg | testa -15

INGRANDIRE

Passaggio 7
Allo stesso modo, se vogliamo visualizzare solo le ultime 15 righe, eseguiamo:

 dmesg | coda -15 
Passaggio 8
Per cercare un particolare dispositivo o parola, sarà possibile filtrare le righe con stringhe specifiche, dove l'opzione -io indica al comando grep di ignorare il caso (lettere maiuscole o minuscole):
 dmesg | grep -i usb dmesg | grep -i dma dmesg | grep -i tty dmesg | grep -i memoria

INGRANDIRE

Passaggio 9
Per cancellare il buffer degli eventi dmesg eseguiamo:

 dmesg -c 
In questo modo abbiamo visto come dmesg sia una preziosa utility per gestire in tempo reale tutto ciò che accade con il kernel ei suoi componenti e per svolgere un'attività amministrativa molto più completa.

wave wave wave wave wave