分享 Linux 中容易被遺忘的故障排除工具
dmesg 命令的用法:
當我們執行命令“dmesg”時,會顯示從內核環形緩沖區接收到的所有消息,這里只顯示最新的消息。這用于檢查存儲在內核環形緩沖區中的消息。在非 root 用戶的情況下,使用“sudo”運行 root 級別的命令而不是 root。
linuxmi@linuxmi /home/linuxmi/www.linuxmi.com
? sudo dmesg
雖然我們使用 dmesg 命令它會提供大量輸出,但我們可以使用 tail、head 或 less 命令來查看日志頁面。在正斜杠“/”的幫助下搜索您選擇的特定日志或術語,以在更少 的范圍內搜索。
linuxmi@linuxmi /home/linuxmi/www.linuxmi.com
? sudo dmesg | less
dmesg 默認提供彩色輸出,如上所示,但如果您想對其進行著色以正確理解消息,則可以使用“L”命令對其進行著色。
linuxmi@linuxmi /home/linuxmi/www.linuxmi.com
? sudo dmesg -L
dmesg 以秒和納秒為單位使用時間戳,對于人性化的格式,使用時間戳的“H”選項。同樣在less中顯示。在時間戳中,它顯示日期和時間。每分鐘發生的消息被標記為秒和納秒。
linuxmi@linuxmi /home/linuxmi/www.linuxmi.com
? sudo dmesg -H
我們使用-T(友好的顯示)選項,因為它們以標準日期和時間顯示。
linuxmi@linuxmi /home/linuxmi/www.linuxmi.com
? sudo dmesg -T
監控實時日志–follow選項與 dmesg 一起使用,它在終端底部顯示最近的消息。
linuxmi@linuxmi /home/linuxmi/www.linuxmi.com
? sudo dmesg --follow
正如我們看到的 dmesg 給出的大輸出,我們可以使用 tail 或 head 選項列出特定數量的消息并查看它們。在這里,我們使用head 選項檢查前 10 條消息。
linuxmi@linuxmi /home/linuxmi/www.linuxmi.com
? sudo dmesg | head -10
最后 10 條消息使用tail 選項顯示。
linuxmi@linuxmi /home/linuxmi/www.linuxmi.com
? sudo dmesg | tail -10
在這里,我們將使用-i(忽略)選項通過掃描 dmesg 輸出來搜索特定的字符串或模式或消息,但此選項將忽略字符串的大小寫并僅關注我們搜索的字符串。在結果中,它將顯示“USB”和“usb”組合的消息。
linuxmi@linuxmi /home/linuxmi/www.linuxmi.com
? sudo dmesg | grep -i usb
使用帶有 dmesg 的 grep 命令搜索與內存、RAM、硬盤或 USB 驅動器相關的消息。這里 grep 與“sda”一起使用來檢查內核檢測到了哪些硬盤。sda 命令用于檢查硬盤,并將在列出 sda 的任何位置顯示消息。
linuxmi@linuxmi /home/linuxmi/www.linuxmi.com
? sudo dmesg | grep -i sda
每個記錄到內核環形緩沖區的消息都被分配一個級別。層次代表了信息在交流中的重要性。級別如下:
- emerg:系統無法使用。
- alert:必須立即采取行動。
- crit:臨界條件。
- err:錯誤條件。
- warn:警告條件。
- notice:正常但重要的情況。
- info:信息。
- debug:調試級消息。
使用帶有 dmesg -l(級別)選項提取消息,后跟級別的名稱。在這里,我們使用 dmesg 命令列出所有使用級別“info”的信息消息,它們將顯示需要和重要的通知。
linuxmi@linuxmi /home/linuxmi/www.linuxmi.com
? sudo dmesg -l info
要提取具有多個日志級別的消息,我們必須組合兩個或多個日志級別。在這里,我們使用“debug 和 notice”日志級別來提取消息。
linuxmi@linuxmi /home/linuxmi/www.linuxmi.com
? sudo dmesg -l debug,notice
組合多個日志級別的另一個示例是“err 和 warn”,它將顯示錯誤日志和警告日志。
linuxmi@linuxmi /home/linuxmi/www.linuxmi.com
? sudo dmesg --level=err,warn
顯示eth0 用戶界面的 dmesg 消息使用 grep 選項后跟eth0。
linuxmi@linuxmi /home/linuxmi/www.linuxmi.com
? sudo dmesg | grep -i eth0
使用 facility 選項 -f過濾 dmesg 消息,它將顯示特定工具“守護程序daemon”的消息。
linuxmi@linuxmi /home/linuxmi/www.linuxmi.com
? sudo dmesg -f daemon
-x(解碼)選項用于易于閱讀的格式將設施和級別顯示為每行的前綴。
linuxmi@linuxmi /home/linuxmi/www.linuxmi.com
? sudo dmesg -x
總結
Linux dmesg(英文全稱:display message)命令用于顯示開機信息。
kernel 會將開機信息存儲在 ring buffer 中。您若是開機時來不及查看信息,可利用 dmesg 來查看。開機信息亦保存在 /var/log 目錄中,名稱為 dmesg 的文件里。