Uso del comando dmesg con ejemplos
Diagnostic Message «dmesg», es un comando incluido en los sistemas UNIX, para listar el buffer de mensajes del núcleo del sistema operativo «kernel». En este buffer tenemos la información de arranque nuestro sistema y mensajes del núcleo, información necesaria para detectar posibles errores en nuestro sistema y en el Hardware.
A pesar de la fiabilidad e integridad de las distribuciones GNU/Linux, en todo sistema informático, puede producirse un fallo en alguno de sus componentes. Con «dmesg», no perderemos tiempo comprobando, uno por uno todos los componentes, usando un comando que simplificará este proceso.
Sumario
- Definición del comando
- Uso del comando dmesg
- Opciones del comando con ejemplos
- Filtros del comando con ejemplos
Definición del comando
Cuando iniciamos un sistema GNU/Linux, en el arranque del sistema, el kernel identifica los dispositivos hardware disponibles en el sistema «POST». Conforme se van detectando los dispositivos, se generan unos registros que quedan almacenados en un buffer, llamado de anillo, del kernel. Este buffer, también conocido como buffer cíclico o circular, es específico para administrar el registro interno del Kernel. Un búffer de anillo es un espacio de memoria, de tamaño fijo, en el cual cualquier dato nuevo agregado sobrescribirá los datos más antiguos allí alojados, según esté configurado.
Como en cualquier registro, en este se guardan los errores que se han producido, lo que es importante conocer, ya que, en alguna ocasión, puede salvar nuestro sistema. Con el comando dmesg además de ver todo el registro, podrás identificar los errores por tipo, algo especialmente útil para cualquier administrador de sistemas. Ten en cuenta que durante el arranque del sistema los demonios de registro como «syslogd» o «rsyslogd» aún no están en funcionamiento y sin «dmesg», perderíamos datos que pueden ser muy importantes.
Uso del comando dmesg
El comando lo tienes instalado en todas las distribuciones, por lo que no es necesario hacer nada previamente. Tienes que utilizar sudo antes de cada comando o escalar privilegios con «sudo su».
La sintaxis es como sigue:
dmesg [options]
Opciones del comando con ejemplos
Las opciones más importantes
- –clear, –read-clear, –console-on, –console-off, y –con‐sole-level. Estas opciones son excluyentes entre sí.
- -C, –clear Borra el buffer de anillo.
- -c, –read-clear Borra el buffer de anillo después de haberlo impreso.
- -H, –human Muestra los datos inteligibles para humanos
- -k, –kernel Imprime los mensages del kernel
- -s, –buffer-size size Usar un tamaño de búffer determinado para almacenar los registros.
- -w, –follow Sigue monitorizando el sistema una vez en funcionamiento
Por ejemplo, si quieres aumentar o reducir el tamaño del buffer de anillo, puedes hacerlo con la siguiente sintaxis.
dmesg -s 1024
También tienes la opción de imprimir el buffer y, posteriormente borrar el ciclo del anillo.
dmesg -c
Para ver todos los datos del registro ejecutamos el siguiente comando, paginando su salida.
dmesg | less o dmesg | more
Sales de la pantalla con «q».
Como vemos en la captura anterior, la salida nos muestra toda la información, imprime el buffer al completo. Para analizarla mejor podemos aplicar filtros, como veremos a continuación.
Podemos pedir que imprima la salida sin formato
dsmeg -r
O que la imprima legible para los humanos
dmesg -H
Para ver los mensajes «dmesg» en tiempo real
dmesg --follow
Para parar el proceso «Ctrl+c».
Filtros del comando con ejemplos
Cuando encontramos errores, lo recomendable es aplicar los filtros, llamados también niveles, que incorpora el comando para discriminar lo que nos puede dificultar la identificación de errores o posibles problemas. De este modo será más fácil identificar el error. Los filtros disponibles son los siguientes:
- emerg – Error que impide el funcionamiento del sistema correctamente.
- alert – Error que requiere intervención inmediata.
- crit – Sistema bajo condiciones críticas.
- err – Sistema bajo condiciones de error.
- warn – Advertencias del sistema.
- debug – Advertencias de depuración.
- notice – Condiciones normales, pero debes prestar atención al aviso.
- info – Información general.
Para usar estos filtros lo haremos con la siguiente sintaxis.
dmesg --level=alert,[filtro]
Unos ejemplos
Para ver errores que impiden el funcionamiento del sistema
dmesg --level=alert,emerg
Pero si queremos ver errores que requieren intervención inmediata.
dmesg --level=alert,alert
Para ver los errores que se han producido.
dmesg --level=alert,err
Para ver las alertas y advertencias críticas
dmesg --level=alert,crit
Ver errores críticos
dmesg --level=alert,warn
Comprobar advertencias del sistema
dmesg --level=alert,debug
Ver avisos a los que prestar atención
dmesg --level=alert,notice
Aquí tienes unos ejemplos.
Para ver información general.
dmesg --level=alert,info
Podemos, por ejemplo, buscar las referencias a dispositivos de almacenamiento en los mensajes del kernel
dmesg | grep sda
O las referencias a dispositivos USB
dmesg | grep -i usb
Para consultar los mensajes relacionados con la tarjeta de red
dmesg | grep -i enp0s3
Para ver todas las terminales en ejecución
dmesg | grep -i tty
Incluso podemos ver datos de la memoria principal «RAM»
dmesg | grep -i memory
Otra opción es buscar los errores en la salida con grep
dmesg | grep -i error
Y monitorizar el sistema para que nos vaya mostrando las últimas 20 entradas, con
watch "dmesg | tail -20"
Para parar el proceso «Ctrl+c».
Si quieres consultar todas las opciones lo puedes hacer en el manual integrado del comando
man dmesg
En el directorio /var/log/ tienes los logs o registros del sistema por si necesitas seguir explorando.
Como puedes ver «dmesg» es una herramienta muy útil y fácil de usar cuando necesitamos identificar algún problema a nivel de hardware, que no siempre son sencillos de detectar, para un correcto funcionamiento de tu escritorio o servidor.
Si tienes algún comentario que hacer sobre este artículo, al pie del post tienes un formulario para hacerlo.
Si quieres contactar conmigo por cualquier otro asunto relacionado con el sitio, en la página de contacto, tienes un formulario más adecuado.
Y para suscribirte y recibir las novedades publicadas, tienes un enlace en el pie de la página o desde aquí mismo.