kinux查日誌 從命令列如何檢視Linux日誌

2021-10-13 04:40:43 字數 2284 閱讀 6273

你的系統上出現問題時,要做的頭一件事就是檢視日誌。本文作者介紹了在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)可以幫助你通過日誌檔案來排查系統問題。

如何從命令列重新載入 bash profile?

su username儲存.bash profile檔案 通過鍵入cd轉到使用者的主目錄.bash profile 只需輸入 bash profile但是,如果您希望在終端啟動時自動執行它而不是每次開啟終端時都執行它,您可以新增.bash profile.bash profile到 bashrc檔案...

PHP從命令列接收引數

昨天,在牛客網做華為機試題,不太熟悉它的環境,吃了大虧。測試樣例是通過標準輸入輸入的,執行結果是通過標準輸出輸出的。標準輸入就是鍵盤,標準輸出就是顯示器。經過大量實踐,發現fscanf 最好用,沒有之一!mixed fscanf resource handle,string format mixed...

LinuxTips 從命令列到指令碼

對於linux的中的一些問題,一般地我們可以通過以下的思路來解決 1 使用linux提供的很多的小工具和管道來處理 2 如果需要使用多條命令,或需要邏輯判斷,考慮使用sh,sh除了能直接使用linux的小工具外,還可以進行很多的邏輯和流程控制 3 如果需要很多的字串處理,問題也比較複雜,考慮使用pe...