Cargando



Qué hace y cómo usar el comando dmesg Linux

Tutorial para usar y ver qué hace el comando dmesg en Linux y así ver una lista de mensajes del kernel pudiendo encontrar fallos.


ago 10 2018 12:10
Avanzado
Total de Apartados : 2

Los sistemas operativos Linux ofrecen cientos de comandos que han sido desarrollados en ofrecer las mejores facilidades de administración para los usuarios ya sea a nivel de hardware, software, servicios o procesos, donde cada comando cumple con una función especial y puede desplegar o no mejores resultados que otros. Sabemos de la fiabilidad e integridad de las distribuciones de Linux, pero al igual que todo sistema operativo o aplicación, puede llegar el momento en que alguno de sus componentes falle y en vez de perder tiempo buscando miles de causas podemos echar mano de un comando que simplificará este proceso y es el comando dmesg.

 

Solvetic hará un completo análisis sobre qué es y como actual dmesg en Linux y así nos daremos cuenta de que se convierte en una gran herramienta de ayuda para todas las tareas de soporte.

 

Qué es dmesg
El comando dmesg es usado con el fin de escribir los mensajes del kernel en Linux y otros sistemas operativos similares a Unix en una salida estándar de forma mucho más organizada. Recordemos que el kernel es el núcleo del sistema operativo, es allí donde el sistema operativo se carga en la memoria al momento de iniciar el equipo y el kernel está en la capacidad de controlar casi todo en el sistema. Gracias a este proceso, se generan numerosos mensajes por el kernel que aparecen en la pantalla de visualización durante el proceso de arranque.

 

El comando dmesg obtiene los datos leyendo el buffer del anillo del kernel. Básicamente un búfer es una parte de la memoria del equipo que se reserva como un lugar temporal para los datos que son enviados o recibidos desde un dispositivo externo, tales como una unidad de disco duro, un teclado, etc, mientras que un búfer de anillo es un búfer de tamaño fijo en el cual cualquier dato nuevo agregado va a sobrescribir los datos más antiguos allí alojados. dmesg se usa para examinar o controlar el buffer del anillo kernel y la acción predeterminada es mostrar todos los mensajes del buffer de anillo kernel.

 

Los mensajes generados por el kernel son pieza fundamental en las tareas de diagnóstico ya que, en caso de fallar algún dispositivo, tendremos a mano un resumen sobre que sucedió y así tomar las medidas de soporte necesarias. En el momento de conectar o desconectar un dispositivo de hardware en el sistema, gracias al comando dmesg, será posible conocer la información detectada o desconectada en tiempo real y lo mejor de todo es que el comando dmesg está disponible en la mayoría de los sistemas operativos basados en Linux y Unix.

 


1. Usar el comando dmesg en Linux

 

Paso 1

El uso básico de este comando es ejecutarlo sin parámetros:
Dmesg
Paso 2

Esto dará como resultado el despliegue de todos los mensajes del kernel:

 

 

 

Paso 3

Debido a toda la información desplegada, es difícil llevar a cabo alguna tarea de administración allí. Podemos hacer uso del parámetro “-H” con el fin de indicarle a dmesg que la salida sea legible para los usuarios, lo cual simplificará las tareas de soporte. Allí encontramos detalles mucho más claros sobre el anillo del kernel.
dmesg -H

 

Paso 4

Otra alternativa para realizar un análisis con dmesg es con el parámetro “-w”, el cual nos permite escribir un script para analizar el resultado usando una expresión regular con el fin de filtrar los eventos para su posterior análisis:
dmesg -w

 

Paso 5

Podemos ver que los resultados son por lo general abundantes, es posible limitar la salida únicamente a errores y advertencias con el fin de no analizar todo lo que sucede en el sistema a nivel interno y para ello el comando dmesg dispone de ocho niveles a usar, donde cada uno de los cuales se puede combinar con el objetivo de llevar a cabo una búsqueda mucho más completa y específica, estos niveles son:

 

emerg
El sistema no puede ser usado

 

alert
Es necesario tomar medidas de inmediato.

crit
Condiciones críticas.

err
Condiciones de error.

warn
Condiciones de advertencia.

notice
Condición normal, pero con posibles fallos.

info
información.

debug
Mensajes de depuración.

 

Paso 6

Podemos usar diversos tipos de niveles, por ejemplo, podemos ejecutar lo siguiente:
dmesg --level=alert,info

 

Paso 7

Los resultados dependen del estado del kernel:
dmesg --level=err,warn

 

 


2. Ver Marcas y detalles de tiempo con comando dmesg

 

Paso 1

Al usar dmesg, será posible saber en detalle a qué hora ocurrió un error o advertencia gracias al parámetro -T, podemos ejecutarlo de la siguiente forma:
dmesg --level=err,warn -T

 

Paso 2

Allí vemos detalles de hora y fecha del evento. Podemos especificar un dispositivo específico para desplegar los resultados generados por dmesg, para ello especificamos el nombre del dispositivo de la siguiente forma:
dmesg | grep -i enp0s3

 

Paso 3

Si deseamos limitar la salida de dmesg solo a mensajes de espacio de usuario, vamos a usar la opción “-u”:
dmesg -u

 

Paso 4

Podemos hacer uso de herramientas de manipulación de texto, como more (mas) o les (menos) junto a 'grep' con el comando dmesg, la razón es que la salida del registro dmesg no cabe en una sola página, podeos usar alguna de las siguientes opciones:
dmesg | more
dmesg | less

 

Paso 5

Si deseamos descubrir qué discos duros ha detectado el kernel, es posible buscar la palabra clave "sda" junto con "grep" para desplegar este resultado así:
dmesg | grep sda

 

Paso 6

Podemos usar el parámetro “head” junto con dmesg con el fin de mostrar la cantidad de líneas de inicio deseadas, para desplegar solo las primeras 15 líneas ejecutamos:
dmesg | head  -15

 

 

Paso 7

Del mismo modo, si solo deseamos desplegar las ultimas 15 líneas ejecutamos:
dmesg | tail -15
Paso 8

Para buscar un dispositivo o palabra en particular, será posible filtrar las líneas con cadenas específicas, donde la opción -i indica al comando grep que ignore el caso (letras mayúsculas o minúsculas):
dmesg | grep -i usb
dmesg | grep -i dma
dmesg | grep -i tty
dmesg | grep -i memory

 

Paso 9

Para limpiar el buffer de eventos de dmesg ejecutamos:
dmesg -c
De esta forma hemos visto como dmesg es una utilidad valiosa para gestionar todo lo que sucede con el kernel y sus componentes en tiempo real y llevar cabo una tarea administrativa mucho más completa.

 

Te explicamos cómo puedes instalar y usar Guider como un analizador de rendimiento en Linux.


¿Te ayudó este Tutorial?


Sin comentarios, sé el primero!

No esperes más y entra en Solvetic
Deja tus comentarios y aprovecha las ventajas de la cuenta de usuario ¡Únete!

Hola! Si no encuentras algún tutorial en el buscador de Solvetic, Solicítalo Aquí

X