Comando dmesg - Visualizar o log do buffer do Kernel do Linux
Sommario:
- Utilizzando il comando
dmesg
- Formating
dmesg
Output - Filtraggio
dmesg
Output - Svuotare il Ring Ring Buffer
- Conclusione
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:
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
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
):
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 utentemail
-daemon
sistema di posta -auth
demoni di sistema - messaggi di sicurezza / autorizzazionesyslog
- messaggi di syslogd internilpr
- sottosistema stampante di lineanews
- sottosistemanews
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 utilizzabilealert
- l'azione deve essere intrapresa immediatamentecrit
- condizioni criticheerr
- condizioni di errorewarn
- avviso condizioni dinotice
-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:
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
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.
Cogli la riga di comando con il comando Take

Integra il prompt dei comandi, la GUI e un potente linguaggio batch con il potente toolkit Take Command.
Comando chmod in linux (permessi dei file)

In Linux l'accesso ai file è gestito attraverso le autorizzazioni, gli attributi e la proprietà dei file. Questa esercitazione illustra come utilizzare il comando chmod per modificare le autorizzazioni di accesso a file e directory.
Comando chgrp in linux (cambia gruppo)

In Linux, ogni file è associato a un proprietario e un gruppo e dispone di autorizzazioni che determinano quali utenti possono leggere, scrivere o eseguire il file. Il comando chgrpc modifica la proprietà del gruppo di determinati file.