Logs
如何過濾 dmesg 日誌以僅查看錯誤
我在 ubuntu 中,當我寫 dmesg 時,錯誤消息顯示為紅色,我怎麼能在控制台中只列印那些?
使用
--level
中描述的選項man dmesg
:-l, --level list Restrict output to the given (comma-separated) list of levels. For example: dmesg --level=err,warn will print error and warning messages only. For all supported levels see the --help output.
直接回答
dmesg --level=emerg,alert,crit,err
這是大多數人要尋找的。從以下八個列表中添加或刪除任何一個,按嚴重性排序。
emerg - system is unusable alert - action must be taken immediately crit - critical conditions err - error conditions warn - warning conditions notice - normal but significant condition info - informational debug - debug-level messages
替代答案
我喜歡使用 grep 來快速過濾 dmesg 輸出結果,而且,您可以在許多 show 命令的末尾使用它。
-i
表示不區分大小寫。參考:https ://www.howtogeek.com/449335/how-to-use-the-dmesg-command-on-linux/ 。dmesg | grep -i "error"
另外一個選項
journalctl -p 0..3
這以不同的方式看待相似的資訊。修改嚴重性過濾(
0
通過3
),但只需使用數字 0 到 7 來表示與 dmesg 相同的概念,而不必記住這些關鍵字。信用:https ://askubuntu.com/a/1245985/192800
兔子洞
另一種思考方式是使用您選擇的任何方法查看實際日誌文件,而不是繞過 dmesg 的限制。這可以廣泛應用於任何文件,並且使用正則表達式等具有無限潛力。這是顯示最後
-n
條目數的兩種方法的展示。tail -n 20 /var/log/dmesg dmesg | tail -n 20