GNU/Linux >> Znalost Linux >  >> Linux

10 tipů o příkazu „dmesg“ pro Linux Geeks

dmesg příkaz se používá k zobrazení zpráv souvisejících s jádrem na systémech podobných Unixu. dmesg znamená „zobrazit zprávu nebo ovladač displeje “. Příkaz dmesg získá svá data načtením kruhové vyrovnávací paměti jádra. Při odstraňování problémů na systémech Linux se příkaz dmesg stává velmi užitečným, může nám pomoci identifikovat chyby a varování související s hardwarem, kromě toho může na vaši obrazovku vytisknout zprávy související s démony.

V tomto článku probereme 10 užitečných tipů o příkazu dmesg pro správce Linuxu nebo geeky, níže je syntaxe příkazu dmesg,

# dmesg {options}

Níže jsou uvedeny možnosti, které lze použít v příkazu dmesg

Pojďme se nyní vrhnout na část s tipy

1. Zobrazit všechny zprávy z kruhové vyrovnávací paměti jádra

Otevřete terminál a zadejte příkaz „dmesg“ a poté stiskněte Enter. Na obrazovce se zobrazí všechny zprávy z vyrovnávací paměti jádra.

~]# dmesg

Příkaz dmesg vytiskne všechny zprávy, ale uvidíte pouze nejnovější zprávu, která se vejde na obrazovku, pokud chcete provést analýzu všech protokolů a zobrazit je po stránce, použijte příkaz less or more,

~]# dmesg | less

Výstup příkazu dmesg by byl něco jako níže,

2. Zobrazujte zprávy týkající se paměti RAM, pevného disku, jednotek USB a sériových portů

Ve výstupu příkazu dmesg můžeme prohledávat zprávy týkající se RAM, pevného disku, jednotky usb a sériových portů.

~]# dmesg | grep -i memory
~]# dmesg | grep -i dma
~]# dmesg | grep -i usb
~]# dmesg | grep -i tty

Tyto výše uvedené příkazy lze sloučit do jednoho příkazu pomocí více možností grep (-E), příklady jsou uvedeny níže,

~]# dmesg | grep -E "memory|dma|usb|tty"

Výstup by byl něco jako níže:

[    4.100608] usb 4-1: SerialNumber: serial
[    4.102288] [TTM] Zone  kernel: Available graphics memory: 49438090 kiB
[    4.102294] [TTM] Zone   dma32: Available graphics memory: 2097152 kiB
[    4.102891] input: Logitech USB Keyboard as \ 
/devices/pci0000:00/0000:00:1d.2/usb8/8-1/8-1:1.0/input/input2
[    4.109905] input: American Megatrends Inc. \ 
Virtual Keyboard and Mouse as \
/devices/pci0000:00/0000:00:1a.1/usb4/4-1/4-1:1.0/input/input3
[    4.153575] hid-generic 0003:046D:C31C.0001: \
input,hidraw0: USB HID v1.10 Keyboard [Logitech USB Keyboard] \
 on usb-0000:00:1d.2-1/input0
[    4.199642] input: Logitech USB Keyboard as \
/devices/pci0000:00/0000:00:1d.2/usb8/8-1/8-1:1.1/input/input4
[    4.204832] hid-generic 0003:046B:FF10.0002: \ 
input,hidraw1: USB HID v1.10 Keyboard [American Megatrends Inc. \ 
Virtual Keyboard and Mouse] on usb-0000:00:1a.1-1/input0
[    4.211855] input: American Megatrends Inc. Virtual Keyboard and \
 Mouse as /devices/pci0000:00/0000:00:1a.1/usb4/4-1/4-1:1.1/input/input5
[    4.239313] ata1: SATA max UDMA/133 cmd 0x8138 ctl 0x814c bmdma 0x8110 irq 19
[    4.239317] ata2: SATA max UDMA/133 cmd 0x8130 ctl 0x8148 bmdma 0x8118 irq 19
[    4.255839] hid-generic 0003:046D:C31C.0003: input,hidraw2: \
 USB HID v1.10 Device [Logitech USB Keyboard] on usb-0000:00:1d.2-1/input1
[    4.256191] hid-generic 0003:046B:FF10.0004: input,hidraw3:\
 USB HID v1.10 Mouse [American Megatrends Inc. Virtual Keyboard and \ 
Mouse] on usb-0000:00:1a.1-1/input1
[    4.392050] ata3: SATA max UDMA/133 cmd 0x8128 ctl 0x8144 bmdma 0x80f0 irq 21
[    4.392051] ata4: SATA max UDMA/133 cmd 0x8120 ctl 0x8140 bmdma 0x80f8 irq 21
[   19.125903] ioatdma: Intel(R) QuickData Technology Driver 4.00
[   19.126493] ioatdma 0000:00:16.0: irq 140 for MSI/MSI-X
[   19.128248] ioatdma 0000:00:16.1: irq 142 for MSI/MSI-X
[   19.129953] ioatdma 0000:00:16.2: irq 144 for MSI/MSI-X
[   19.131926] ioatdma 0000:00:16.3: irq 146 for MSI/MSI-X
[   19.134235] ioatdma 0000:00:16.4: irq 147 for MSI/MSI-X
[   19.135688] ioatdma 0000:00:16.5: irq 148 for MSI/MSI-X
[   19.137522] ioatdma 0000:00:16.6: irq 149 for MSI/MSI-X
[   19.140174] ioatdma 0000:00:16.7: irq 150 for MSI/MSI-X
[   19.141931] ioatdma 0000:80:16.0: irq 152 for MSI/MSI-X
[   19.161974] ioatdma 0000:80:16.1: irq 154 for MSI/MSI-X
[   19.167511] ioatdma 0000:80:16.2: irq 156 for MSI/MSI-X
[   19.169293] ioatdma 0000:80:16.3: irq 158 for MSI/MSI-X
[   19.170821] ioatdma 0000:80:16.4: irq 159 for MSI/MSI-X
[   19.174764] ioatdma 0000:80:16.5: irq 160 for MSI/MSI-X
[   19.176360] ioatdma 0000:80:16.6: irq 161 for MSI/MSI-X
[   19.177984] ioatdma 0000:80:16.7: irq 162 for MSI/MSI-X
[ 4519.415988] usb 8-1: USB disconnect, device number 2
~]#

3. Číst a vymazat protokoly dmesg pomocí volby (-C)

Pokud chcete vymazat protokoly dmesg po jejich přečtení, můžete použít volbu -C v příkazu dmesg,

~]# dmesg -C

4. Zobrazení barevných zpráv (výstup příkazu dmesg)

Pokud chcete vytisknout barevné zprávy, použijte možnost  ‚-L‘ v příkazu dmesg,

~]# dmesg -L

5. Omezte výstup dmesg na konkrétní zařízení, jako je démon

Pokud chcete omezit výstup dmesg na konkrétní zařízení, jako je démon  , použijte možnost „–facility=daemon ” v příkazu dmesg,

~]# dmesg --facility=daemon

Výstup výše uvedeného příkazu by byl něco jako níže,

[    3.680902] systemd[1]: systemd 219 running in system mode. \
\  (+PAM +AUDIT +SELINUX +IMA -APPARMOR +SMACK +SYSVINIT +UTMP \ 
+LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ -LZ4 -SECCOMP +BLKID +ELFUTILS +KMOD +IDN)
[    3.682017] systemd[1]: Detected architecture x86-64.
[    3.682022] systemd[1]: Running in initial RAM disk.
[    3.682060] systemd[1]: Set hostname to <controller01.egi.ericsson.com>.
[    3.734025] systemd[1]: Reached target Timers.
[    3.734041] systemd[1]: Starting Timers.
[    3.734219] systemd[1]: Created slice -.slice.
[    3.734231] systemd[1]: Starting -.slice.
[    3.736741] systemd[1]: Starting Apply Kernel Variables...
[    3.736792] systemd[1]: Listening on udev Kernel Socket.
[    3.736807] systemd[1]: Starting udev Kernel Socket.
[    3.736823] systemd[1]: Reached target Sockets.
[    3.736832] systemd[1]: Starting Sockets.
[    3.737418] systemd[1]: Starting Setup Virtual Console...
[    3.737488] systemd[1]: Started dracut ask for additional cmdline parameters.
[    3.738211] systemd[1]: Starting dracut cmdline hook...
[    3.738736] systemd[1]: Started Create list of required static \ 
device nodes for the current kernel.
[    3.740196] systemd[1]: Started Apply Kernel Variables.
[    3.743253] systemd[1]: Starting Create Static Device Nodes in /dev...
[    3.746693] systemd[1]: Started Create Static Device Nodes in /dev.
[    3.814248] systemd[1]: Started Setup Virtual Console.
[    3.822146] systemd[1]: Started Journal Service.
[   16.072365] systemd[1]: Inserted module 'ip_tables'
[[email protected] ~]#

Níže jsou uvedeny podporované funkce protokolování v příkazu dmesg,

  • kern
  • uživatel
  • e-mail
  • démon
  • autorizace
  • syslog
  • lpr
  • novinky

6. Omezte výstup příkazu dmesg na konkrétní seznam úrovní

Níže jsou uvedeny konkrétní úrovně protokolů podporované příkazem dmesg,

  • vznikají
  • upozornění
  • krit
  • chyba
  • varovat
  • upozornění
  • informace
  • ladění

Předpokládejme, že chceme zobrazit protokoly související s chybou a varováním, pak použijeme možnost „–úroveň“ následovanou úrovněmi, jako je chyba a varování, příklad je uveden níže

~]# dmesg --level=err,warn
----------------------------------
[1341929.334323] iSCSI Login negotiation failed.
[1491798.215987] rx_data returned 0, expecting 48.
[1491798.217027] iSCSI Login negotiation failed.
[1494278.360062] rx_data returned 0, expecting 48.
[1494278.361265] iSCSI Login negotiation failed.
[1557620.564093] blk_update_request: critical target error, dev dm-6, \ 
sector 2153
[1557620.565432] dm-23: WRITE SAME failed. Manually zeroing.
[1558518.963985] Unable to load target_core_user
[1559841.691841] TARGET_CORE[iSCSI]: Expected Transfer Length: \ 
264 does not match SCSI CDB Length: 8 for SAM Opcode: 0x12
[1559841.691953] scsi 10:0:0:0: alua: not attached
[1559860.013693] kvm [72955]: vcpu0 unhandled rdmsr: 0x1ad
[1560386.614083] TARGET_CORE[iSCSI]: Expected Transfer Length: \ 
264 does not match SCSI CDB Length: 8 for SAM Opcode: 0x12
[1560386.614172] scsi 11:0:0:0: alua: not attached
[1608828.924794] rx_data returned 0, expecting 48.
[1608828.925904] iSCSI Login negotiation failed.
[1787664.206542] rx_data returned 0, expecting 48.
[1787664.207809] iSCSI Login negotiation failed.
[1800235.169914] rx_data returned 0, expecting 48.
[1800235.171012] iSCSI Login negotiation failed.
[2051176.431584] ata1.01: failed to resume link (SControl 0)
[2051858.493155] ata1.01: failed to resume link (SControl 0)
………………………………………………………………………………
#

7. Povolit časová razítka v protokolech dmesg

Mohou nastat některé scénáře, kdy chceme povolit časová razítka v dmesg, toho lze snadno dosáhnout použitím volby „-T“ v příkazu  dmesg.

~]# dmesg -T
……………………………………………
Wed May  9 12:20:36 2018] rx_data returned 0, expecting 48.
[Wed May  9 12:20:36 2018] iSCSI Login negotiation failed.
[Thu May 10 03:31:36 2018] httpd[63827]: segfault at 8 ip \
 00007f1ef7166c50 sp 00007f1eee417db0 error 4 in \ 
libpython2.7.so.1.0[7f1ef706c000+178000]
[Thu May 10 03:31:37 2018] httpd[57146]: segfault at 8 ip \ 
00007f1ef7166c50 sp 00007f1eee417db0 error 4 in \ 
libpython2.7.so.1.0[7f1ef706c000+178000]
[Sat May 12 10:02:56 2018] ata1.00: hard resetting link
[Sat May 12 10:02:56 2018] ata1.01: hard resetting link
[Sat May 12 10:02:57 2018] ata1.01: failed to resume link (SControl 0)
[Sat May 12 10:02:57 2018] ata1.00: SATA link up 1.5 Gbps \
(SStatus 113 SControl 300)
[Sat May 12 10:02:57 2018] ata1.01: SATA link down (SStatus 0 SControl 0)
[Sat May 12 10:02:57 2018] ata1.01: link offline, clearing class 3 to NONE
[Sat May 12 10:02:57 2018] ata1.00: configured for UDMA/100
[Sat May 12 10:02:57 2018] ata1: EH complete
[Sat May 12 10:14:18 2018] ata1.00: hard resetting link
[Sat May 12 10:14:18 2018] ata1.01: hard resetting link
[Sat May 12 10:14:19 2018] ata1.01: failed to resume link (SControl 0)
[Sat May 12 10:14:19 2018] ata1.00: SATA link up 1.5 Gbps \
(SStatus 113 SControl 300)
[Sat May 12 10:14:19 2018] ata1.01: SATA link down (SStatus 0 SControl 0)
[Sat May 12 10:14:19 2018] ata1.01: link offline, clearing class 3 to NONE
[Sat May 12 10:14:19 2018] ata1.00: configured for UDMA/100
[Sat May 12 10:14:19 2018] ata1: EH complete
…………………………………………………

V případě, že chcete časové mapy spolu s dekódovacím zařízením a úrovněmi ve výstupu příkazu dmesg, použijte „-Tx “,

~]# dmesg -Tx

8. Sledujte protokoly dmesg v reálném čase pomocí možnosti „–sledovat“

Použijte volbu „–follow“ v příkazu dmesg k zobrazení protokolů dmesg v reálném čase, příklad je uveden níže,

~]# dmesg --follow

Pokud chcete povolit časové značky při monitorování dmesg v reálném čase, použijte následující příkaz

~]# dmesg -Tx --follow

9. Zobrazit vyrovnávací paměť nezpracovaných zpráv pomocí volby „-r“

Použijte volbu '-r' v příkazu dmesg k zobrazení raw bufferu zpráv, příklad je uveden níže,

~]# dmesg -r

10. Přinutit příkaz dmesg k použití syslog

Mohou nastat situace, kdy chceme, aby dmesg získával svá data ze syslogu místo /dev/kmsg. Toho lze snadno dosáhnout pomocí možnosti „-S “, příklad je uveden níže:

~]# dmesg -S

Protokoly příkazů dmesg jsou uloženy v souboru „/var/log/dmesg“

To je z tohoto tutoriálu vše, doufám, že vám tyto tipy pomohou lépe porozumět příkazu dmesg.

Přečtěte si také :Příklady příkazů 20 ps pro monitorování procesů Linuxu


Linux
  1. 8 tipů pro příkazový řádek Linuxu

  2. Zkrocení příkazu tar:Tipy pro správu záloh v Linuxu

  3. 6 Úžasné linuxové cd command Hacks – Tip pro produktivitu č. 3 pro nadšence

  1. 3 tipy pro tisk s Linuxem

  2. Tipy pro příkazový řádek Linuxu pro zvýšení produktivity

  3. Příklady příkazů dmesg v Linuxu

  1. Tipy pro výpis souborů s ls na příkazovém řádku Linuxu

  2. Tipy pro použití příkazu top v Linuxu

  3. 12 Příklady IP příkazů pro uživatele Linuxu