Androide

Comando dmesg en linux

Comando dmesg - Visualizar o log do buffer do Kernel do Linux

Comando dmesg - Visualizar o log do buffer do Kernel do Linux

Tabla de contenido:

Anonim

El kernel de Linux es el núcleo del sistema operativo que controla el acceso a los recursos del sistema, como CPU, dispositivos de E / S, memoria física y sistemas de archivos. El núcleo escribe varios mensajes en el búfer del anillo del núcleo durante el proceso de arranque y cuando el sistema se está ejecutando. Estos mensajes incluyen diversa información sobre el funcionamiento del sistema.

El búfer de anillo del núcleo es una parte de la memoria física que contiene los mensajes de registro del núcleo. Tiene un tamaño fijo, lo que significa que una vez que el búfer está lleno, se sobrescriben los registros de registros más antiguos.

La utilidad de línea de comandos dmesg se utiliza para imprimir y controlar el búfer de anillo del núcleo en Linux y otros sistemas operativos similares a Unix. Es útil para examinar los mensajes de arranque del núcleo y depurar problemas relacionados con el hardware.

En este tutorial, cubriremos los conceptos básicos del comando dmesg .

Usando el comando dmesg

La sintaxis para el comando dmesg es la siguiente:

dmesg

Cuando se invoca sin ninguna opción, dmesg escribe todos los mensajes del búfer de anillo del núcleo en la salida estándar:

dmesg

Por defecto, todos los usuarios pueden ejecutar el comando dmesg . Sin embargo, en algunos sistemas, el acceso a dmesg puede estar restringido para usuarios no root. En esta situación, al invocar dmesg , recibirá un mensaje de error como el siguiente:

dmesg: read kernel buffer failed: Operation not permitted

El parámetro del kernel kernel.dmesg_restrict especifica si los usuarios sin privilegios pueden usar dmesg para ver los mensajes del búfer de registro del kernel. Para eliminar las restricciones, configúrelo en cero:

sudo sysctl -w kernel.dmesg_restrict=0

Por lo general, la salida contiene muchas líneas de información, por lo que solo se puede ver la última parte de la salida. Para ver una página a la vez, canalice la salida a una utilidad de buscapersonas, como less o more :

dmesg --color=always | less

--color=always se usa para preservar la salida coloreada.

dmesg | grep -i usb

dmesg lee los mensajes generados por el núcleo del archivo virtual /proc/kmsg . Este archivo proporciona una interfaz para el búfer de anillo del núcleo y solo se puede abrir mediante un proceso. Si el proceso de syslog se está ejecutando en su sistema e intenta leer el archivo con cat , o less , el comando se bloqueará.

El demonio syslog volca los mensajes del núcleo a /var/log/dmesg , por lo que también puede usar ese archivo de registro:

cat /var/log/dmesg

dmesg salida dmesg

El comando dmesg proporciona una serie de opciones que lo ayudan a formatear y filtrar la salida.

Una de las opciones más utilizadas de dmesg es -H ( --human ), que permite la salida legible por humanos. Esta opción canaliza la salida del comando a un localizador:

dmesg -H

Para imprimir marcas de tiempo legibles por humanos, use la opción -T ( --ctime ):

dmesg -T

IPv6: ADDRCONF(NETDEV_CHANGE): wlp1s0: link becomes ready

El formato de las marcas de tiempo también se puede configurar con el --time-format opción, que puede ser ctime, reltime, delta, notime o iso. Por ejemplo, para usar el formato delta, escribiría:

dmesg --time-format=delta

También puede combinar dos o más opciones:

dmesg -H -T

Para ver la salida del comando dmesg en tiempo real, use la opción -w ( --follow ):

dmesg --follow

Salida de dmesg filtrado

Puede restringir la salida de dmesg a instalaciones y niveles dados.

La instalación representa el proceso que creó el mensaje. dmesg admite las siguientes instalaciones de registro:

  • kern - user mensajes de kernel - mail mensajes de nivel de usuario - daemon sistema de correo - auth demonios del sistema - mensajes de seguridad / autorización syslog - mensajes syslogd internos lpr - news subsistema de impresora de línea - subsistema de news red

El -f ( --facility ) le permite limitar la salida a instalaciones específicas. La opción acepta una o más instalaciones separadas por comas.

Por ejemplo, para mostrar solo los mensajes del núcleo y los demonios del sistema que usaría:

dmesg -f kern, daemon

Cada mensaje de registro está asociado con un nivel de registro que muestra la importancia del mensaje. dmesg admite los siguientes niveles de registro:

  • emerg - el sistema está inutilizable alert - la acción debe tomarse inmediatamente crítica - las condiciones críticas crit - las condiciones de error warn - aviso de condiciones de advertencia - información de condición normal pero significativa - debug informativa - mensajes de nivel de depuración

El -l ( --level ) la opción restringe la salida a niveles definidos. La opción acepta uno o más niveles separados por comas.

El siguiente comando muestra solo el error y los mensajes críticos:

dmesg -l err, crit

Despejando el anillo de búfer

La opción -C ( --clear ) le permite borrar el búfer de anillo:

sudo dmesg -C

Solo los usuarios root o usuarios con privilegios de sudo pueden borrar el búfer.

Para imprimir el contenido del búfer antes de borrar, use la opción -c ( --read-clear ):

sudo dmesg -c

dmesg > dmesg_messages

Conclusión

El comando dmesg permite ver y controlar el búfer de anillo del núcleo. Puede ser muy útil al solucionar problemas de kernel o hardware.

Escriba man dmesg en su terminal para obtener información sobre todas las opciones de dmesg disponibles.

terminal del núcleo dmesg