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. |
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
.