為Linux應用程式排查故障的另類方法

edithfang發表於2014-05-08

可供使用的最強大的工具非命令列莫屬。藉助gdb命令和strace命令之類的工具,你無異於擁有了需要的一切工具,幫助查明什麼原因導致那個應用程式屢屢崩潰。對於那些不願意學用命令列的人來說,可用的工具其功能要遜色一點,不過仍相當有幫助。雖然圖形使用者介面(GUI)工具無法為你提供傳送給開發人員所需的原始資料,但它們可以幫助你排查眼前的問題。這些工具還讓你可以深入瞭解系統,誰不希望這樣呢?

不妨深入探討這些工具,看看當某個軟體行為出現異常時,它們如何能幫到你。我將在Ubuntu 13.10系統上,使用預設情況下已安裝或出現在Ubuntu軟體中心(Ubuntu Software Center)中的工具,進行演示。

所需資訊在哪裡?

你要明白的頭一件事情就是,Linux擁有一個功能異常強大的日誌檔案系統。這些日誌位於/var/log/,是你在為系統排查故障時的最好朋友。用來為系統排查故障的兩個最重要的日誌檔案是:

  1. ·/var/log/syslog 
  2. ·/var/log/dmesg 

問題是,平常檢查這些日誌的過程是通過命令列來完成的。開啟終端視窗,執行下面這個命令:

  1. less /var/log/syslog 

就會輸出日誌的全部內容,供你細細檢視。但命令列卻不是大多數新使用者想要面對的東西。實際上,我經常收到好多電子郵件,內容是"我想試一下Linux,但不想非得一直執行命令!"謝天謝地,你可以避免命令列――甚至不用命令列,就能檢視日誌檔案。

glogg

這是你要安裝的第一個工具,也是唯一的工具。glogg工具是一種支援多平臺的GUI,讓你可以仔細瀏覽系統日誌檔案。這個工具的功能實際上強大得多,而不止瀏覽這一項(允許使用正規表示式作為搜尋工具),但它仍是無需開啟終端視窗,就可以檢視日誌檔案的最佳方法之一。你可以在Ubuntu軟體中心找到glogg。想安裝該工具,只要執行下面這些步驟:

1.開啟Ubuntu軟體中心。

2.搜尋"glogg"(沒有雙引號)。

3.在搜尋結果中點選glogg。

4.點選Install(安裝)。

5.出現提示時,鍵入你的sudo密碼。

6.允許安裝完成。

安裝完畢後,你應該會在Unity啟動器上看到一個新的圖示。點選新啟動器,即可開啟glogg。當應用程式開啟後,你看不到日誌被裝入。為此,點選左上角的資料夾圖示。使用檔案管理器,瀏覽至/var/log,雙擊系統日誌(syslog)。現在你應該會看到glogg裝入的好多文末(見圖1)。

現在你能做的就是,搜尋該日誌,尋找可能與故障有關的任何字串。要明白,許多應用程式不會直接記入到系統日誌,但是你可能會發現一些蛛絲馬跡,讓你進而找到關於該應用程式的重要資訊。可能有所幫助的另一個方法就是,標記應用程式崩潰的確切時間,然後與/var/log/syslog中的時間戳作一番比較。還可以在glogg中開啟應用程式日誌檔案。你需要知道該應用程式把其日誌檔案具體放在哪裡,不然這個方法對你毫無用處。

比如說,假設你找不到該應用程式的日誌檔案的位置;於是,你改而找到/var/log/syslog。你知道應用程式曾在凌晨2點15分出現崩潰,於是你開啟日誌檔案,搜尋14:15(因為日誌採用24小時制)。你會找到標以紅色的搜尋結果(見圖2);仔細檢查那些結果,看看能不能找到關於為什麼你的應用程式崩潰的任何線索。

glogg最出色的地方之一就是,它讓你可以跟蹤分析日誌檔案。藉助該工具,你可以開啟某個日誌檔案,跟蹤分析它,並且實時檢視寫到該檔案的任何內容。這樣一來,只要通過檢視當你開啟應用程式後,有沒有什麼東西寫入到日誌檔案,就能幫助排查故障。

想跟蹤分析日誌檔案,執行下面這些步驟:

1.開啟glogg。

2.開啟有問題的日誌檔案。

3.點選View(檢視)> Follow File(跟蹤分析檔案)。

這時候,只要任何資料被寫入到上述日誌,glogg就會自動重新整理日誌檢視。

但要是在日誌檔案裡面查詢需要過於深入鑽研Linux系統,或者根本就沒有什麼結果,該如何是好?你還可以選擇Occam's Razor(奧卡姆剃刀)原理,檢視這個最簡單的解決方案。

System Monitor

如果你之前用過Windows,那麼就大致瞭解工作管理員,以及它如何幫助解決問題。許多Linux發行版也有非常類似的工具。你可以在System Monitor中找到Ubuntu對工作管理員的看法。點選超級按鍵(即"Windows"按鍵),鍵入"system"(沒有雙引號),點選System Monitor圖示。等這個工具開啟後,你會找到三個易於使用的選項卡:

·Processes(程式):按程式的名稱、使用者、耗用處理器的百分比、編號(ID)、耗用記憶體和優先順序,列出了所有執行中的程式。

·Resources(資源):顯示了處理器、記憶體及交換和網路等資源的歷史資訊。

·File Systems(檔案系統):顯示了裝置、裝置在哪裡掛載、每個裝置的大小、可用空間有多大以及已使用了多少空間。

為應用程式排查故障的關鍵將是Processes選項卡和Resources選項卡。要是你有某個應用程式被凍結了(又無法退出),可以執行下面這些步驟:

1.開啟System Monitor。

2.點選Processes(程式)選項卡。

3.找到程式名稱。

4.滑鼠右擊程式名稱。

5.選擇Open Files(開啟檔案)。

6.從隨後出現的視窗(見圖3)中,仔細查詢任何線索。

要是開啟的檔案無法為你提供任何資訊,最穩妥的辦法可能是,索性終止這個應用程式。為此,選擇有問題的程式,然後點選End Process(結束程式)。這會強行關閉應用程式。這時候,你可以回到glogg,開啟日誌檔案,跟蹤分析該檔案,最後重新啟動該應用程式。

為經常崩潰的應用程式排查故障可能是棘手的"兔子洞",大多數使用者不想深入鑽研。除非你願意使用功能強大的命令列,否則就得另闢蹊徑。藉助幾個工具,你就可以開始縮小那些問題的範圍、查詢根源。但願通過使用這些工具,你可以開始瞭解管理Linux機器所必不可少的諸多系統和程式,即便每次只是一小步。

原文連結:http://www.linux.com/learn/tutorials/770475-troubleshooting-linux-applications-without-using-the-command-line

相關閱讀
評論(1)

相關文章