2021-05-12 14:32:11
從命令列如何檢視Linux紀錄檔
你的系統上出現問題時,要做的頭一件事就是檢視紀錄檔。本文作者介紹了在Linux下檢視紀錄檔的具體方法。
在你作為Linux管理員的職業生涯中,應該早晚都會檢視紀錄檔檔案。因為紀錄檔檔案可以幫助你排查問題,每個經驗豐富的管理員在出現問題後,要做的頭一件事就是檢視紀錄檔。
你會發現許多紀錄檔:系統紀錄檔、核心紀錄檔、軟體包管理器紀錄檔、Xorg紀錄檔、啟動進程紀錄檔、Apache紀錄檔、MySQL紀錄檔… 你能想到的幾乎任何系統都有相應的紀錄檔檔案。
大多數紀錄檔檔案位於一個便利的位置:/var/log。這些都是系統和服務紀錄檔,你的作業系統或某一項重要服務出現問題時,會高度依賴這些紀錄檔。如果是針對特定桌面應用程式的問題,紀錄檔檔案會被寫入到不同的位置(比如Thunderbird把崩潰報告寫入到 ‘~/.thunderbird/Crash Reports’)。桌面應用程式把紀錄檔寫入到何處取決於開發人員,以及應用程式是否允許自定義紀錄檔設定。
我們會著重介紹系統紀錄檔,因為這是Linux故障排查的核心所在。而這裡的一個關鍵問題是,你如何檢視那些紀錄檔檔案?
幸好,你有眾多方法可以檢視系統紀錄檔,它們都只要從命令列來執行即可。
- /var/log
這是Linux系統上一個至關重要的資料夾。開啟終端視窗,執行命令cd /var/log。現在執行命令ls,你就會看到位於該目錄下面的紀錄檔(見圖1)。
圖1:列出了位於/var/log/下的紀錄檔檔案
現在,不妨看一看其中一個紀錄檔。
使用less檢視紀錄檔
/var/log裡面包含有最重要的紀錄檔之一是syslog。這個特殊的紀錄檔檔案記錄下了除驗證相關訊息之外的一切資訊。假設你想檢視這一個紀錄檔檔案的內容,可以迅速執行命令less /var/log/syslog。這個命令會開啟syslog紀錄檔檔案,顯示檔案首部。然後,你可以使用箭頭鍵每次向下捲動一行,使用空格鍵每次向下捲動一頁,或者使用滑鼠輪,輕鬆捲動瀏覽檔案。
這種方法有一個問題,那就是syslog會變得相當龐大;另外,考慮到你要找的資訊極有可能在底部或靠近底部,你可能不想把時間耗費在每次逐行或逐頁捲動進入到尾部,由於在less命令中syslog已開啟,你還可以按[Shift]+[g]組合鍵,立即進入到紀錄檔檔案的尾部。尾部會標以(END)。然後,你可以用箭頭鍵或捲動輪向上捲動,找到你想要的具體資訊。
當然,這不是很高效。
使用dmesg檢視紀錄檔
dmesg命令輸出核心環緩衝區。預設情況下,該命令會顯示來自核心環緩衝區的所有資訊。從終端視窗,執行命令dmesg,整個核心環緩衝區的內容就會輸出顯示(見圖2)。
圖2:USB外部驅動器顯示了需要研究的一個問題
幸好,有一種內建的控制機制讓你得以僅僅輸出某些程式模組(facility,比如守護行程)。
假設你想檢視使用者程式模組的紀錄檔項,可執行命令dmesg --facility=user。要是有什麼資訊記錄到該工具,它會輸出結果。
不像less命令,執行dmesg會顯示紀錄檔的全部內容,並讓你進入到檔案尾部。你始終可以使用捲動輪來瀏覽終端視窗的緩衝區(如果適用的話)。相反,你會想要把dmesg的輸出通過管道命令輸入到less命令,就像這樣:
- dmesg | less
上述命令會輸出dmesg的內容,讓你可以捲動瀏覽輸出,就像使用less命令檢視標準紀錄檔那樣。
使用tail檢視紀錄檔
tail命令可能是用於檢視紀錄檔檔案的最方便的工具之一。tail的功能就是輸出檔案的尾部內容。所以,如果你執行命令tail /var/log/syslog,它只會輸出syslog檔案的尾部幾行。
但是等一下,好玩的並不僅限於此。tail命令有一個很重要的技巧,這需要藉助使用-f選項。如果你執行命令tail -f /var/log/syslog,tail會繼續監視紀錄檔檔案,輸出寫入到檔案的下一行。這意味著你可以在終端視窗裡面實時關注什麼寫入到syslog(見圖3)。
圖3:使用tail命令,關注/var/log/syslog
以這種方式使用tail對於排查問題大有幫助。
在關注檔案時想退出tail命令,只需按 [Ctrl]+[x]組合鍵。
你還可以指示tail只關注某幾行。假設你只想檢視寫入到syslog的尾部5行;為此,你可以執行這個命令:
- tail -f -n 5 /var/log/syslog
上述命令會關注syslog的輸入,只輸出最近的5行。一旦有新的行寫入到syslog,它會將最早的那一行從首部刪除。這是讓關注紀錄檔檔案這個過程更容易的一種好方法。我強烈建議別使用這種方法來檢視少於四五行的紀錄檔,因為你最後會發現輸入被截斷,無法獲得某項的全部細節。
還有其他工具
你會找到其他命令(甚至幾個還不錯的GUI工具)以便檢視紀錄檔檔案。預計more、grep、head、cat、multitail和系統紀錄檔檢視器(System Log Viewer)可以幫助你通過紀錄檔檔案來排查系統問題。
原文標題:Viewing Linux Logs from the Command Line,作者:Jack Wallen
本文永久更新連結地址:http://www.linuxidc.com/Linux/2016-12/138368.htm
相關文章