GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Cómo usar el comando dmesg de Linux

Introducción

El dmesg El comando es una utilidad de Linux que muestra mensajes relacionados con el kernel recuperados del búfer de anillo del kernel. El búfer de anillo almacena información sobre el hardware, la inicialización del controlador del dispositivo y los mensajes de los módulos del núcleo que tienen lugar durante el inicio del sistema.

El dmesg El comando es invaluable para solucionar errores relacionados con el hardware, advertencias y para diagnosticar fallas en el dispositivo.

En este tutorial, aprenderá a usar el dmesg comando en Linux.

Requisitos previos

  • Un sistema informático que ejecuta Linux.
  • Una cuenta de usuario con privilegios de administrador.

Sintaxis y opciones

El dmesg básico la sintaxis del comando es:

dmesg [options]

La siguiente tabla enumera los dmesg más utilizados opciones:

Ejemplos del comando dmesg de Linux

Los ejemplos son comunes dmesg casos de uso de comandos.

Mostrar todos los mensajes del búfer de anillo del kernel

Invocando dmesg sin ninguna opción genera todo el búfer del kernel, sin paradas y sin forma de navegar por la salida.

sudo dmesg

El ejemplo anterior es un dmesg parcial salida de comando. Para una navegación más sencilla y una mejor legibilidad, canalice el dmesg salida en un localizador de terminal como less , more o usa grep .

Por ejemplo:

sudo dmesg | less

Tuberías dmesg en less le permite utilizar la función de búsqueda para localizar y resaltar elementos. Activa la búsqueda presionando / . Navega a la siguiente pantalla usando la barra espaciadora , o invertir usando la B llave. Salga de la salida presionando Q .

Mostrar mensajes de colores

Por defecto, dmesg produce una salida coloreada. Si la salida no está coloreada, use -L opción para colorearlo.

sudo dmesg -L

Para desactivar las salidas en color, agregue --color=never opción para dmesg . Ejecute el siguiente comando:

sudo dmesg --color=never

El dmesg predeterminado la salida ahora tiene un color uniforme.

Mostrar mensajes a medida que llegan

Supervise el búfer de anillo del núcleo en tiempo real mediante --follow opción. La opción indica al comando que espere nuevos mensajes relacionados con el hardware o los módulos del kernel después del inicio del sistema.

Ejecute el siguiente dmesg comando para habilitar la supervisión del búfer de anillo del kernel en tiempo real:

sudo dmesg --follow

El comando muestra cualquier mensaje nuevo en la parte inferior de la ventana del terminal. Detenga el proceso usando Ctrl+C .

Buscar un término específico

Cuando busque problemas específicos o mensajes de hardware, canalice el dmesg salida en grep para buscar una cadena o patrón en particular.

Por ejemplo, si está buscando mensajes sobre la memoria, ejecute el siguiente comando:

dmesg | grep -i memory

La salida muestra todas las líneas del búfer que contiene la memory cuerda. El -i (ignorar mayúsculas y minúsculas) el interruptor ignora la sensibilidad del cuidado.

Alternativamente, si está buscando mensajes de búfer sobre USB, puertos serie, red o discos duros, ejecute los siguientes comandos:

USB

dmesg | grep -i usb

Puertos Serie

dmesg | grep -i tty

Red

dmesg | grep -i eth

Discos duros

sudo dmesg | grep -i sda

Busque varios términos a la vez agregando -E opción para grep y proporcionar los términos de búsqueda entre comillas, separados por delimitadores de barra vertical. Por ejemplo:

sudo dmesg | grep -E "memory|tty"

La salida imprime todos los mensajes que contienen cualquiera de los términos de búsqueda.

Leer y borrar registros de dmesg

El -c (--read-clear ) le permite borrar el dmesg registro después de imprimirlo. Borrar el búfer garantiza que solo tenga mensajes válidos del último reinicio.

Ejecute el siguiente comando:

sudo dmesg -c

Volver a ejecutar dmesg no tiene salida desde que se borró el registro.

Habilitar marcas de tiempo en los registros de dmesg

Habilitar marcas de tiempo en dmesg salida agregándola con el -H (--human ), que produce una salida legible por humanos y canaliza automáticamente la salida a un buscapersonas (less ).

Ejecute el siguiente comando:

sudo dmesg -H

El comando agrega una marca de tiempo con la fecha y la hora resueltas en minutos. Los eventos en el mismo minuto se etiquetan con segundos y nanosegundos.

Salga del buscapersonas presionando Q .

Habilitar marcas de tiempo legibles por humanos

Habilite las marcas de tiempo legibles por humanos usando -T (--ctime ) opción. La opción elimina la precisión de nanosegundos de la salida, pero las marcas de tiempo son más fáciles de seguir.

sudo dmesg -T

Las marcas de tiempo en la salida son fechas y horas estándar, y la resolución es en minutos. La misma marca de tiempo se antepone a cada acción que ocurrió en el mismo minuto.

Elegir formato de marca de tiempo

Usa el --time-format [format] opción para elegir el formato de la marca de tiempo. Los formatos disponibles son:

  • ctime
  • reltime
  • delta
  • notime
  • iso

Por ejemplo, para usar el iso formatear, ejecutar:

sudo dmesg --time-format=iso

El formato de marca de tiempo ahora es YYYY-MM-DD<T>HH:MM:SS,<microseconds>←+><timezone offset from UTC> .

Limitar la salida de dmesg a una instalación específica

Filtra el dmesg salida a una categoría específica usando -f opción. El sistema agrupa los mensajes en el búfer de anillo del kernel en las siguientes instalaciones (categorías):

  • kern . Mensajes del núcleo.
  • user . Mensajes a nivel de usuario.
  • mail . Mensajes del sistema de correo.
  • daemon . Mensajes sobre demonios del sistema.
  • auth . Mensajes de autorización.
  • syslog . syslogd interno mensajes.
  • lpr . Mensajes del subsistema de impresora de líneas.
  • news . Mensajes del subsistema de noticias de la red.

Por ejemplo, el siguiente comando limita la salida a mensajes relacionados con syslog instalación:

sudo dmesg -f syslog

Para enumerar los mensajes de más de una instalación, especifique una lista de instalaciones separadas por comas. Por ejemplo:

sudo dmesg -f syslog,daemon

Filtrar niveles de registro

El dmesg El comando asocia cada mensaje de búfer con un nivel de registro que caracteriza la importancia del mensaje. Los niveles disponibles son:

  • emerg . Mensajes de emergencia.
  • alert . Alertas que requieren acción inmediata.
  • crit . Condiciones críticas.
  • err . Mensajes de error.
  • warn . Mensajes de advertencia.
  • notice . Condiciones normales pero significativas.
  • info . Mensajes informativos.
  • debug . Mensajes de nivel de depuración.

Instruir a dmesg para imprimir solo los mensajes que coincidan con un cierto nivel usando el -l opción, seguida del nombre del nivel. Por ejemplo:

sudo dmesg -l info

El ejemplo anterior extrae solo mensajes informativos del registro.

Combine varios niveles en una lista separada por comas para recuperar mensajes de esos niveles. Por ejemplo:

sudo dmesg -l notice,warn

La salida combina mensajes de los niveles de registro especificados.

Combinando instalación y nivel

Muestre explícitamente la instalación de cada mensaje de búfer y el nivel de registro al comienzo de cada línea usando -x (decodificar) opción.

Por ejemplo:

sudo dmesg -x

En el ejemplo anterior, cada línea se antepone con la instalación adecuada y el nivel de registro.

Leer archivo de registro dmesg

Cada vez que se inicia el sistema, los mensajes del búfer de anillo del núcleo se almacenan en el /var/log/dmesg expediente. El dmesg El comando muestra el contenido del archivo de registro. Si tiene problemas para usar el dmesg comando, abra el archivo de registro en un editor de texto para ver el contenido.

En el siguiente ejemplo, usamos el comando cat para ver el archivo de registro y canalizarlo a grep para buscar una cadena en particular que aparece en el registro:

cat dmesg | grep amd

El comando genera todos los amd instancias de cadena en el archivo de registro.

Buscar una unidad de CD

Compruebe si una máquina remota está equipada con una unidad de CD inspeccionando el registro de mensajes del búfer. Por ejemplo, el siguiente comando muestra todos los mensajes sobre los dispositivos de CD inicializados al inicio:

sudo dmesg | grep -iE 'cdrom|dvd|cd/rw|cd-rom'

Los resultados muestran información sobre las unidades de CD-ROM disponibles, incluida la unidad de CD-ROM virtual en esta máquina.

Eliminar el requisito de sudo

Eliminar el requisito de privilegios de superusuario permite que cualquier usuario ejecute dmesg y ver los mensajes del búfer de anillo del núcleo. Ejecute el siguiente comando para eliminar el requisito de sudo:

sudo sysctl -w kernel.dmesg_restrict=0

Después de establecer las restricciones en 0 , cualquier usuario del sistema puede ejecutar dmesg .


Ubuntu
  1. Cómo usar el comando grep de Linux

  2. Cómo usar el comando de historial en Linux

  3. Cómo usar el comando Apt-Get en Linux

  4. Cómo usar el comando sudo en Linux

  5. Cómo usar el comando de nombre de host en Linux

Cómo usar el comando xargs de Linux

Cómo usar el comando tee de Linux

Cómo usar el comando superior en Linux

Cómo usar el comando ping de Linux

Cómo usar el comando Dig en Linux

Cómo usar el comando superior de Linux

    Opción Descripción
    -C, --clear Borra el búfer circular.
    -c, --read-clear Imprime el contenido del búfer circular y luego lo borra.
    -f, --facility [list] Restringe la salida a la instalación separada por comas especificada [list] .
    -H, --human Habilita una salida legible por humanos.
    -L, --color[=auto|never|always] Agrega color a la salida. Omitir el [auto|never|always] los argumentos por defecto son automáticos.
    -l, --level [list] Restringe la salida a la lista de niveles separados por comas especificada.
    --noescape Desactiva la característica de escapar automáticamente de caracteres no imprimibles y potencialmente peligrosos.
    -S, --syslog Instruye a dmesg para usar la interfaz del kernel syslog para leer los mensajes del kernel. El valor predeterminado es usar /dev/kmsg en lugar de syslog .
    -s, --buffer-size [size] Utiliza el tamaño de búfer especificado para consultar el búfer de anillo del núcleo. El valor predeterminado es 16392.
    -T, --ctime Imprime marcas de tiempo legibles por humanos.
    -t, --notime Instruye a dmesg no imprimir las marcas de tiempo del kernel.
    --time-format [format] Imprime marcas de tiempo usando el [format] especificado . Los formatos aceptados son ctime , reltime , delta y iso (un dmesg implementación del formato ISO-8601).
    -w, --follow Mantiene dmesg corriendo y esperando nuevos mensajes. La función está disponible solo en sistemas con un /dev/kmsg legible archivo.
    -x, --decode Decodifica los números de instalaciones y niveles en prefijos legibles por humanos.
    -h, --help Muestra el archivo de ayuda con todas las opciones disponibles.