dmesg es un comando de mensaje de visualización que muestra mensajes relacionados con el kernel en sistemas similares a Unix. Solía controlar el búfer de anillo del núcleo. La salida contiene mensajes producidos por los controladores de dispositivo.
Uso del comando dmesg:
Todos los mensajes recibidos del kernel ring buffer se muestran cuando ejecutamos el comando “dmesg” , aquí solo se mostrarán los últimos mensajes. Esto se utiliza para comprobar los mensajes almacenados en el búfer de anillo del kernel. En el caso de un usuario que no sea root, use «sudo» para ejecutar comandos de nivel de root sin ser root.
$ sudo dmesg
Si bien usamos el comando dmesg, brinda una salida grande, podemos usar el comando tail, head o less para ver la página de registros sabiamente. Para buscar un registro o término específico de su elección con la ayuda de la barra inclinada «/» para buscar dentro de menos
$ sudo dmesg | less
dmesg proporciona una salida en color de forma predeterminada, como se muestra arriba, pero si desea colorearlo para comprender correctamente los mensajes, puede colorearlos con el comando «L».
$ sudo dmesg -L
dmesg usa marcas de tiempo en segundos y nanosegundos, para un formato amigable para los humanos, use la opción «H» para las marcas de tiempo. Lo mismo se muestra en menos. En la marca de tiempo, muestra la fecha y la hora. Los mensajes que tienen lugar cada minuto se marcan como segundos y nanosegundos.
$ sudo dmesg -H
Usamos la opción -T (legible por humanos) ya que se muestran con fecha y hora estándar. En esta opción se baja un minuto la resolución
$ sudo dmesg -T
Para monitorear registros en tiempo real, la opción de seguimiento se usa con dmesg y muestra los mensajes recientes en la parte inferior de la terminal
$ sudo dmesg --follow
Como vemos que dmesg da una gran salida, podemos usar la opción de cola o cabeza para enumerar una cantidad específica de mensajes y verlos. Aquí verificamos los primeros 10 mensajes usando la opción de encabezado
$ sudo dmesg | head -10
Los últimos 10 mensajes se muestran usando la opción de cola
$ sudo dmesg | tail -10
Aquí usaremos la opción -i (ignorar) para buscar una string, patrones o mensaje específicos escaneando la salida de dmesg, pero esta opción ignorará las mayúsculas y minúsculas de las strings y se centrará solo en la string que buscamos. En los resultados, mostrará mensajes para las combinaciones «USB» y «usb».
$ sudo dmesg | grep -i usb
Búsqueda de mensajes relacionados con la memoria, la RAM, el disco duro o la unidad USB mediante el comando grep con dmesg. Aquí se utiliza grep con «sda» para comprobar qué discos duros ha detectado el núcleo. El comando sda se usa para verificar el disco duro y mostrará los mensajes dondequiera que aparezca sda
$ sudo dmesg | grep -i sda
Se asigna un nivel a cada mensaje registrado en el búfer de anillo del kernel. El nivel representa la importancia de la información en la comunicación. Los niveles son los siguientes:
- emerg: El sistema es inutilizable.
- Alerta: se deben tomar medidas de inmediato.
- crit: Condiciones críticas.
- err: Condiciones de error.
- advertir: Condiciones de advertencia.
- aviso: Condición normal pero significativa.
- información: informativo.
- debug: mensajes de nivel de depuración.
Extraer mensajes usando la opción -l (nivel) con dmesg seguido del nombre del nivel. Aquí enumeramos todos los mensajes informativos que usan el nivel «info» con el comando dmesg, mostrarán las notificaciones que son necesarias e importantes.
$ sudo dmesg -l info
Para extraer mensajes con varios niveles de registro, debemos combinar dos o más niveles de registro. Aquí estamos utilizando niveles de registro de «depuración y notificación» para extraer mensajes.
$ sudo dmesg -l debug,notice
Otro ejemplo de combinación de más de un nivel de registro es «err and warn» , donde mostrará registros de errores y registros de advertencia .
$ sudo dmesg --level=err,warn
Mostrar mensajes dmesg para la interfaz de usuario eth0 use la opción grep seguida de eth0
$ sudo dmesg | grep -i eth0
Filtrado de mensajes dmesg usando la opción de instalación -f donde mostrará mensajes de un «demonio» de instalación en particular.
$ sudo dmesg -f daemon
La opción -x (decodificación) se usa para mostrar la instalación y el nivel como prefijos de cada línea en un formato legible por humanos.
$ sudo dmesg -x