GNU/Linux >> Belajar Linux >  >> Linux

Alat Linux:Menyampaikan pesan dengan dmesg

dmesg command adalah salah satu alat pemecahan masalah yang mudah dilupakan yang harus tetap berada di puncak gudang sysadmin Anda. Ini berisi begitu banyak informasi tentang sistem Anda sehingga dmesg harus menjadi tempat pertama yang Anda lihat ketika terjadi kesalahan. Keluaran dari dmesg panjang, seperti yang dapat Anda lihat sendiri jika Anda mengetiknya di command prompt karena melaporkan informasi dari semua aspek sistem Anda saat tidak ada pesan kesalahan—selain yang mungkin muncul saat boot.

Secara formal, dmesg mencetak atau mengontrol buffer ring kernel. Tindakan default adalah menampilkan semua pesan dari buffer ini.

Untuk referensi dan perbandingan di masa mendatang, waktu terbaik untuk melihat dmesg hanya setelah boot. Saya biasanya mengirim dmesg informasi ke file teks menggunakan perintah seperti berikut:

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

Perintah ini membuat file teks bernama dmesg.12.11.2019.txt . Antara tanggal pembuatan file dan boot berikutnya, Anda dapat memeriksa pesan baru yang dihasilkan oleh kernel.

Pesan pasca-boot yang mungkin muncul mencakup error sistem, error perangkat, dan informasi tentang perangkat USB apa pun yang mungkin dicolokkan oleh seseorang. Misalnya, dmesg berikut informasi muncul setelah memasukkan drive 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

Untuk melihat daftar lengkap pesan terkait USB, keluarkan dmesg perintah dan grep untuk 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

Seperti yang Anda lihat, saya menggunakan grep perintah dengan -i opsi sehingga mengabaikan huruf besar-kecil dan saya akan melihat semua yang terkait dengan perangkat USB terlepas dari itu (Usb , usb , atau USB ). Praktik ini baik untuk subsistem atau filter apa pun yang ingin Anda gunakan. Selalu abaikan kasus filter Anda.

Misalnya, untuk melihat semua disk (perangkat blok) yang terpasang ke sistem Anda, gunakan perintah berikut:

$ 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)

Hasil menunjukkan lebih dari sekedar daftar perangkat blok, sehingga Anda dapat menyaring lebih lanjut hasil Anda dengan menentukan sistem file, XFS dalam hal ini:

$ 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)

Penggunaan -i opsi di sini berlebihan tetapi saya selalu memasukkannya untuk berjaga-jaga jika ada hasil yang tidak akan saya lihat sebaliknya. Saya menggunakan tombol panah atas untuk memutar ulang perintah terakhir saya (fitur Bash yang paling bagus) dan hanya mundur dari hal terakhir yang saya cari dan menggantinya dengan kata kunci baru saya, jadi setelah saya memasukkan perintah, saya tidak perlu repot dengan apa pun kecuali apa yang saya cari. Tidak ada bahaya yang dilakukan dengan cara apa pun.

Jika Anda ingin melihat apakah sistem jarak jauh Anda dilengkapi dengan drive CD/DVD, coba perintah ini:

$ 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

Empat baris terakhir menampilkan informasi tentang pengandar CD-ROM. Meskipun drive CD-ROM bersifat virtual pada sistem ini, jika perangkat keras pelengkap mesin virtual menyertakannya, drive tersebut dapat memuat file image ISO seolah-olah itu adalah image yang dapat di-boot pada media fisik.

dmesg perintah tidak besar dan mencolok. Ini tidak melakukan banyak hal atau memiliki daftar opsi yang panjang. Sebaliknya, itu elegan dalam kesederhanaannya dan sepraktis pelindung saku Anda. Alih-alih sebagai renungan, Anda harus membiasakan menjalankan dmesg secara teratur pada sistem Anda. Dan, ketika terjadi kesalahan, jalankan lagi untuk mengetahui apa yang diketahui kernel tentang masalahnya. Anda dapat menyelamatkan diri dari kesedihan dan beberapa langkah pemecahan masalah. Anda juga mungkin terlihat seperti pahlawan bagi rekan kerja dan manajemen Anda karena menemukan masalah dengan begitu cepat. Ingat, waktu adalah uang dan Anda mencoba menghematnya dan hari.

Ingin mencoba Red Hat Enterprise Linux? Unduh sekarang secara gratis.


Linux
  1. Menjadwalkan tugas dengan perintah cron Linux

  2. Analisis kernel Linux dengan ftrace

  3. Memulai PostgreSQL di Linux

  1. Memulai dengan perintah tac Linux

  2. Memulai dengan perintah cat Linux

  3. Memulai SSH di Linux

  1. Mainkan drum di Linux dengan Hidrogen

  2. Bersantailah dengan Lingkungan Desktop Equinox Linux

  3. Memulai dengan desktop GNOME Linux