dmesg
1、簡介
dmesg 命令主要用來顯示內核信息。使用 dmesg 可以有效診斷機器硬件故障或者添加硬件出現的問題。另外,使用 dmesg 可以確定您的服務器安裝了哪些硬件。每次系統重啟,系統都會檢查所有硬件并將信息記錄下來。執行/bin/dmesg 命令可以查看該記錄,開機信息亦保存在/var/log目錄中,名稱為dmesg的文件里。
2、dmesg命令常用格式
[root@RedHat_test ~]# dmesg [-cn][-s <緩沖區大小>]
-c: 當完成打印顯示后清除環緩沖內的內容。
-s: 緩沖區大小。定義一個大小為"緩沖區大小"的緩沖區用于查詢內核環緩沖區。默認大小為 8196(此大小與 2.0.33 和 2.1.103 內核的默認syslog 緩沖區大小一致),如果你設置了一個大于默認值的環緩沖區,那你就可以用這個選項定義一個相當的緩沖區來查看完整的環緩沖區內容。
-n: 級別。設置級別為記錄控制臺啟動信息的級別。比如,-n 1指的就是將此級別設為最低級,除了內核恐慌信息之外不會向控制臺顯示信息。所有級別的啟動信息還將記錄到/proc/kmsg,文件中,因此,syslogd(8)同樣可以用來對信息的輸出進行控制。當使用-n選項時,dmesg將不會 清除內核環緩沖區中的內容。當同時使用以上兩個選項時,只有最后一個選項才會產生效果。
3、將系統啟動信息保存到文件中
[root@RedHat_test ~]# dmesg > messages.txt
4、單頁輸出
[root@RedHat_test ~]# dmesg | more
[root@RedHat_test ~]# dmesg | less
5、以可讀性較好的形式輸出信息
[root@RedHat_test ~]# dmesg -H
6、設置記錄信息的層級
[root@RedHat_test ~]# dmesg -n 3
7、打印輸出內存
[root@RedHat_test ~]# dmesg | tail -f #打印輸出最近一次的信息
[root@RedHat_test ~]# dmesg | head -20 #打印輸出前20行的信息
[root@RedHat_test ~]# dmesg | tail -20 #打印輸出最后20行日志
8、實時監控dmesg日志的輸出信息
[root@RedHat_test ~]# watch "dmesg | tail -20"
9、搜索包含特定字符串的被檢測到的硬件
[root@RedHat_test ~]# dmesg | grep DMA #查看硬盤的運行模式
[root@RedHat_test ~]# dmesg | grep eth #查看以太網的連接信息
[root@RedHat_test ~]# dmesg | grep sda #查看硬盤設備
[root@RedHat_test ~]# dmesg | grep ttyS* #查看串口的相關信息
[root@RedHat_test ~]# dmesg | grep -i memory #查看內存狀況
[root@RedHat_test ~]# dmesg | grep -i usb #查看usb接口
[root@RedHat_test ~]# dmesg |egrep -i "(apm|acpi)" #探測系統內核模塊,檢測ACPI的加載情況
10、將開機信息發郵件
[root@RedHat_test ~]# dmesg >boot.messages
[root@RedHat_test ~]# mail -s "Boot Log of linux Server" public@web3q.net <boot.messages
11、打印并清除內核環形緩沖區
[root@RedHat_test ~]# dmesg -c
關于運維學習、分享、交流,筆者開通了微信公眾號【運維貓】,感興趣的朋友可以關注下,歡迎加入,建立屬于我們自己的小圈子,一起學運維知識。