Herramientas de Linux: transmitir el mensaje con dmesg

el dmesg El comando es una de esas herramientas de solución de problemas que se olvidan fácilmente y que debería permanecer en la parte superior del arsenal de su administrador de sistemas. Contiene tanta información sobre su sistema que dmesg debe ser el primer lugar donde mirar cuando algo anda mal. la salida de dmesg es largo, como puede ver por sí mismo si lo escribe en un símbolo del sistema, porque informa información sobre todos los aspectos de su sistema cuando no hay mensajes de error, aparte de los que pueden aparecer al inicio.

Oficialmente, dmesg imprime o controla el búfer del núcleo circular. La acción predeterminada es mostrar todos los mensajes en este búfer.

Para futuras referencias y comparaciones, el mejor momento para mirar dmesg es justo después del inicio. yo suelo enviar dmesg información en un archivo de texto usando un comando como el siguiente:

$ dmesg > dmesg.`date +%m.%d.%Y`.txt

Este comando crea un archivo de texto llamado dmesg.12.11.2019.txt. Entre la fecha de creación del archivo y el siguiente arranque, puede buscar nuevos mensajes generados por el kernel.

Los posibles mensajes posteriores al arranque incluyen errores del sistema, errores del dispositivo e información sobre cualquier dispositivo USB que alguien pueda conectar. Por ejemplo, el siguiente dmesg apareció información después de insertar una llave USB:

[ 9189.631808] usb 1-1: new full-speed USB device number 2 using ohci-pci
[ 9189.909896] ohci-pci 0000:00:06.0: frame counter not updating; disabled
[ 9189.909958] ohci-pci 0000:00:06.0: HC died; cleaning up
[ 9194.910072] usb usb1-port1: attempt power cycle

Para ver una lista completa de mensajes relacionados con USB, emita el dmesg comando y grep para usb:

$ dmesg |grep -i usb
[    0.052580] ACPI: bus type USB registered
[    0.052594] usbcore: registered new interface driver usbfs
[    0.052598] usbcore: registered new interface driver hub
[    0.052605] usbcore: registered new device driver usb
[    0.414901] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    0.414907] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[    0.415398] ohci-pci 0000:00:06.0: new USB bus registered, assigned bus number 1
[    0.468262] usb usb1: New USB device found, idVendor=1d6b, idProduct=0001, bcdDevice= 4.18
[    0.468264] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    0.468266] usb usb1: Product: OHCI PCI host controller
[    0.468268] usb usb1: Manufacturer: Linux 4.18.0-80.el8.x86_64 ohci_hcd
[    0.468269] usb usb1: SerialNumber: 0000:00:06.0
[    0.468454] hub 1-0:1.0: USB hub found
[    0.468842] uhci_hcd: USB Universal Host Controller Interface driver
[    0.468885] usbcore: registered new interface driver usbserial_generic
[    0.468889] usbserial: USB Serial support registered for generic
[    0.470765] usbcore: registered new interface driver usbhid
[    0.470765] usbhid: USB HID core driver
[ 9189.631808] usb 1-1: new full-speed USB device number 2 using ohci-pci
[ 9194.910072] usb usb1-port1: attempt power cycle

Como puedes ver usé el grep ordenar con el -i opción para que ignore el caso y veré cualquier cosa asociada con dispositivos USB independientemente de eso (Usb, usb, Donde USB). Esta práctica es buena para cualquier subsistema o filtro que desee utilizar. Ignora siempre la carcasa de tu filtro.

Por ejemplo, para ver todos los discos (dispositivos de bloque) conectados a su sistema, use el siguiente comando:

$ dmesg |grep -i sd
[    0.000000] Command line: BOOT_IMAGE=(hd0,msdos1)/vmlinuz-4.18.0-80.el8.x86_64 root=UUID=f695f641-e489-4674-afd8-8f354533811d ro crashkernel=auto rhgb quiet
[    0.000000] ACPI: RSDP 0x00000000000E0000 000024 (v02 VBOX  )
[    0.000000] ACPI: XSDT 0x000000003FFF0030 00003C (v01 VBOX   VBOXXSDT 00000001 ASL  00000061)
[    0.000000] ACPI: DSDT 0x000000003FFF0470 0022EA (v02 VBOX   VBOXBIOS 00000002 INTL 20100528)
[    0.000000] ACPI: SSDT 0x000000003FFF02A0 0001CC (v01 VBOX   VBOXCPUT 00000002 INTL 20100528)
[    0.000000] Kernel command line: BOOT_IMAGE=(hd0,msdos1)/vmlinuz-4.18.0-80.el8.x86_64 root=UUID=f695f641-e489-4674-afd8-8f354533811d ro crashkernel=auto rhgb quiet
[    1.545750] sd 2:0:0:0: [sda] 33554432 512-byte logical blocks: (17.2 GB/16.0 GiB)
[    1.545756] sd 2:0:0:0: [sda] Write Protect is off
[    1.545757] sd 2:0:0:0: [sda] Mode Sense: 00 3a 00 00
[    1.545764] sd 2:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[    1.546960]  sda: sda1 sda2
[    1.547316] sd 2:0:0:0: [sda] Attached SCSI disk
[    1.975545] XFS (sda2): Mounting V5 Filesystem
[    2.092251] XFS (sda2): Starting recovery (logdev: internal)
[    2.137813] XFS (sda2): Ending recovery (logdev: internal)
[    3.993219] sd 2:0:0:0: Attached scsi generic sg1 type 0
[    5.909006] XFS (sda1): Mounting V5 Filesystem
[    5.959833] XFS (sda1): Starting recovery (logdev: internal)
[    5.962287] XFS (sda1): Ending recovery (logdev: internal)

Los resultados muestran más que solo una lista de dispositivos de bloque, por lo que puede filtrar aún más sus resultados especificando el sistema de archivos, XFS en este caso:

$ dmesg |grep -i xfs
[    1.965741] SGI XFS with ACLs, security attributes, no debug enabled
[    1.975545] XFS (sda2): Mounting V5 Filesystem
[    2.092251] XFS (sda2): Starting recovery (logdev: internal)
[    2.137813] XFS (sda2): Ending recovery (logdev: internal)
[    5.909006] XFS (sda1): Mounting V5 Filesystem
[    5.959833] XFS (sda1): Starting recovery (logdev: internal)
[    5.962287] XFS (sda1): Ending recovery (logdev: internal)

el uso de la -i la opción aquí es redundante, pero siempre la incluyo en caso de que haya resultados que no vería de otra manera. Utilizo la tecla de flecha hacia arriba para reproducir mi último comando (una excelente característica de Bash) y solo vuelvo a lo último que busqué y lo reemplazo con mi nueva palabra clave, así que una vez que ingresé el comando, nunca tengo que preocuparme por nada. excepto lo que estoy buscando. No se hace daño de todos modos.

Si desea ver si su sistema remoto tiene una unidad de CD/DVD, pruebe este comando:

$ dmesg |grep -i cd
[    0.000000] clocksource: kvm-clock: mask: 0xffffffffffffffff max_cycles: 0x1cd42e4dffb, max_idle_ns: 881590591483 ns
[    0.414901] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    0.414907] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[    0.468262] usb usb1: New USB device found, idVendor=1d6b, idProduct=0001, bcdDevice= 4.18
[    0.468268] usb usb1: Manufacturer: Linux 4.18.0-80.el8.x86_64 ohci_hcd
[    0.468842] uhci_hcd: USB Universal Host Controller Interface driver
[    1.328589] ata2.00: ATAPI: VBOX CD-ROM, 1.0, max UDMA/133
[    1.329773] scsi 1:0:0:0: CD-ROM            VBOX     CD-ROM           1.0  PQ: 0 ANSI: 5
[    1.577662] cdrom: Uniform CD-ROM driver Revision: 3.20
[    1.578616] sr 1:0:0:0: Attached scsi CD-ROM sr0

Las últimas cuatro líneas muestran información sobre la unidad de CD-ROM. Aunque la unidad de CD-ROM es virtual en este sistema, si el complemento de hardware de la máquina virtual lo incluye, la unidad puede cargar archivos de imagen ISO como si fueran una imagen de arranque en un medio físico.

el dmesg el orden no es grande y llamativo. No hace mucho ni tiene una larga lista de opciones. En cambio, es elegante en su simplicidad y tan práctico como su protector de bolsillo. En lugar de una ocurrencia tardía, debe adquirir el hábito de correr dmesg regularmente en sus sistemas. Y, cuando algo sale mal, vuelva a ejecutarlo para averiguar qué sabe el kernel sobre el problema. Puede ahorrarse algunos dolores de cabeza y algunos pasos de solución de problemas. También puede verse como un héroe ante sus colegas y la gerencia por encontrar el problema tan rápido. Recuerde que el tiempo es dinero y usted está tratando de ahorrarlo.

Artículos de interés

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Subir

Si continuas utilizando este sitio aceptas el uso de cookies. Más información