Uso del comando dmesg en linux
Uso del comando dmesg en linux. El comando dmesg (diagnostic message / mensajes de diagnóstico), es una herramienta exclusiva de sistemas basados en Unix con la capacidad de listar los avisos temporales generados por el kernel. Estos avisos se guardan en lo que se conoce como buffer, y contiene los mensajes más importantes que se generaron al iniciar el sistema (también los cambios durante su funcionamiento), por ejemplo de los drivers y el hardware. Estos (normalmente) se guardan mediante "syslog", siendo dmesg la herramienta con capacidad de de leer e imprimir (en formato humano) los avisos del kernel. Poder examinar los mensajes de arranque del núcleo, te ayudaran a solucionar problemas relacionados con el hardware. En este articulo vemos los conceptos principales que debes conocer de "dmesg".
Uso del comando dmesg en linux
Uso básico de dmesg La sintaxis de dmesg es muy simple. dmesg No es obligatorio que apliques opciones, lo puedes ejecutar tal cual. dmesg Normalmente esta herramienta se ejecuta sobre cualquier usuario, si por un extraño caso no te permite su uso en usuarios sin permisos, recibirás un mensaje similar a: dmesg: read kernel buffer failed: Operation not permitted El error anterior se produce por el ajuste del parámetro "kernel.dmesg_restrict". Solucionamos el problemas ajustando los privilegios. sudo sysctl -w kernel.dmesg_restrict=0 La salida impresa del comando puedes ser muy larga, y esto dificulta su lectura. Para ver el archivo linea por linea... dmesg --color=always | more La herramienta dmesg nos permite filtrar los mensajes por dispositivo. En nuestro caso y a modo de ejemplo, extraemos un pendrive usb y un raton usb, pasados unos segundos los insertamos de nuevo. dmesg | grep -i usb ejemplo... sololinux ~ # dmesg | grep -i usb usb 2-2: USB disconnect, device number 3 usb 3-1: new low-speed USB device number 2 using uhci_hcd usb 3-1: New USB device found, idVendor=046d, idProduct=c077 usb 3-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0 usb 3-1: Product: USB Optical Mouse usb 3-1: Manufacturer: Logitech input: Logitech USB Optical Mouse as /devices/pci0000:00/0000:00:1d.1/usb3/3-1/3-1:1.0/0003:046D:C077.0004/input/input14 hid-generic 0003:046D:C077.0004: input,hidraw2: USB HID v1.11 Mouse on usb-0000:00:1d.1-1/input0 usb 1-2: new high-speed USB device number 5 using ehci-pci usb 1-2: New USB device found, idVendor=13fe, idProduct=4200 usb 1-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3 usb 1-2: Product: USB DISK 2.0 usb 1-2: SerialNumber: C900589889F91731 usb-storage 1-2:1.0: USB Mass Storage device detected scsi host2: usb-storage 1-2:1.0 usbcore: registered new interface driver usb-storage usbcore: registered new interface driver uas scsi 2:0:0:0: Direct-Access USB DISK 2.0 PMAP PQ: 0 ANSI: 6 Formatear la salida de dmesg Dmesg nos permite aplicar opciones de formateo para que visualmente sea más comprensible. La más utilizada es la salida para humanos, opción -H. dmesg -H Para imprimir los tiempos... dmesg -T ejemplo... usb 1-2: new high-speed USB device number 5 using ehci-pci usb 1-2: New USB device found, idVendor=13fe, idProduct=4200 usb 1-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3 Las marcas de tiempo admiten varios formatos al hacer uso de "--time-format". Se admiten los siguientes: ctime reltime notime delta iso En el ejemplo aplicamos "iso". dmesg --time-format=iso salida en iso... 2020-02-10T08:05:39,936151+0200 usb 2-2: USB disconnect, device number 3 2020-02-10T08:06:06,948110+0200 usb 3-1: new low-speed USB device number 2 using uhci_hcd 2020-02-10T08:06:07,144136+0200 usb 3-1: New USB device found, idVendor=046d, idProduct=c077 Comando dmesg en tiempo real. dmesg -w Aplicando varias opciones a la vez. dmesg -H -T Filtrar la salida de dmesg Se permite filtrar los mensajes por quien los genero, en este caso las opciones son las siguientes: user - mensajes a nivel de usuario kern - mensajes del kernel daemon - demonios del sistema auth - mensajes de seguridad y permisos mail - sistema de correos lpr - impresoras en línea news - novedades de la red syslog - avisos internos de syslogd Para lograr el objetivo utilizamos "-f", que ademas nos permite especificar varios filtros (si es necesario). # mensajes de usuario dmesg -f user # mensajes de usuario, kernel y demonios dmesg -f user,kern,daemon Otra opción de filtrado es por importancia del aviso, vemos las opciones por orden de importancia. emerg - error critico del sistema alert - debes solucionar el error rápidamente o el sistema entrara en modo "emerg" crit - en entorno esta en condiciones críticas err - errores warn - advertencias notice - el sistema es normal pero pon atención a este punto info - nota informativa debug - avisos de depuración Para lograr el objetivo utilizamos "-l", que ademas nos permite especificar varios filtros (si es necesario). # mensajes de emergencia dmesg -l emerg # mensajes de emergencia, de alerta y críticos dmesg -l emerg,alert,crit Borrar los mensajes del buffer A diferencia de la lectura de mensajes, para borrar todos los mensajes debes ser root o usuario con privilegios. Antes de vaciar todos los avisos, existe la opción de imprimir en pantalla y borrar, así los borras y visualizas a la vez. sudo dmesg -c Si quieres borrar todo sin imprimir nada... sudo dmesg -C Como ultimo apunte del articulo, dmesg también permite guardar los avisos en un archivo antes de borrarlo por completo. dmesg > dmesg_messages Existen más opciones que puedes ver en su manual al ejecutar el siguiente comando. man dmesg Canales de Telegram: Canal SoloLinux – Canal SoloWordpress Espero que este articulo te sea de utilidad, puedes ayudarnos a mantener el servidor con una donación (paypal), o también colaborar con el simple gesto de compartir nuestros artículos en tu sitio web, blog, foro o redes sociales. Read the full article













