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:
DmesgPasso 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 -15Passaggio 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 -cIn 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.