1. 程式人生 > 其它 >Linux下檢視日誌用到的常用命令(一)

Linux下檢視日誌用到的常用命令(一)

首選,如何檢視日誌:

很多初級測試人員,在進行執行測試用例這個步驟時,發現bug,不能更加的準確去定位bug,在這樣的情況下就可以開啟Linux伺服器,敲命令檢視操作進行中的實時日誌,當系統報錯時,可以截圖日誌在缺陷管理系統中,開發人員就知道什麼地方錯了,操作步驟一定要寫明確。

1、下載xshell,百度xshell進行下載即

2、新建會話,使用賬號密碼登入你使用系統的伺服器,進行連線。

3、連線成功後,敲擊命令cd /xxx(切換到當前工作命令);繼續敲ls,列出檔案下的所有檔案,找到當前系統存放的那個資料夾中;繼續cd zhgl-server;

4、將會顯示一個logs

5、ls -lrt,顯示一下日誌有多少條

6、cd logs,進入logs資料夾,ls查詢每天的的檔案,然後敲命令,,tail -f localhost_access_log.2018-12-11.txt(當前時間)今天的實時日誌,操作一下系統,就會報出相應的日誌

那麼檢視日誌經常還用到哪些命令呢?

殺殭屍程序部分程式設計師,肯定喜歡下面命令:

  ps -ef | grep java (先查java程序ID)

  kill -9 PID(生產環境謹慎使用)

kill、killall、pkill命令的區別

  kill:通過pid來殺死程序

  killall (killall [引數] [程序名]):Linux系統中的killall命令用於殺死指定名字的程序(kill processes by name)。我們可以使用kill命令殺死指定程序PID的程序,如果要找到我們需要殺死的程序,我們還需要在之前使用ps等命令再配合grep來查詢程序,而killall把這兩個過程合二為一,是一個很好用的命令。

  pkill:pkill 和killall 應用方法差不多,也是直接殺死執行中的程式;如果你想殺掉單個程序,請用kill 來殺掉。例子:pkill -9 firefox

1.檢視日誌常用命令

tail:

-n 是顯示行號;相當於nl命令;例子如下:

tail -100f test.log 實時監控100行日誌

tail -n 10 test.log 查詢日誌尾部最後10行的日誌;

tail -n +10 test.log 查詢10行之後的所有日誌;

head:

跟tail是相反的,tail是看後多少行日誌;例子如下:

head -n 10 test.log 查詢日誌檔案中的頭10行日誌;

head -n -10 test.log 查詢日誌檔案除了最後10行的其他所有日誌;

cat:

tac是倒序檢視,是cat單詞反寫;例子如下:

cat -n test.log |grep "debug" 查詢關鍵字的日誌

2. 應用場景一:按行號檢視---過濾出關鍵字附近的日誌

1)cat -n test.log |grep "debug" 得到關鍵日誌的行號

 2)通常查找出錯誤日誌 cat error.log | grep 'nick' , 這時候我們還有個需求就是輸出當前這個日誌的前後幾行:

    caterror.log|grep-B5'nick'顯示nick及前5行

    caterror.log|grep-A5'nick'顯示nick及後5行

    caterror.log|grep-C5'nick'顯示file檔案裡匹配nick字串那行以及上下5行

    caterror.log|grep-n -B10 -A105'nick'顯示file檔案裡匹配nick字串前後10行 

3. 應用場景二:選取日誌中特定範圍進行分析

  1)cat -n test.log |tail -n +1000|head -n 20 從第1000行開始,顯示20行

tail -n +1000表示查詢1000行之後的日誌

head -n 20 則表示在前面的查詢結果裡再查前20條記錄

  2)cat catalina.out | head -n 1400| tail -n +1350 顯示1350行到1400行 (實現原理都差不多,就是通過語法糖)

 (1)按日期擷取 :一般在日誌系統中都會記錄列印日誌的時間,通常我們非常需要查詢指定時間端的日誌:

  sed -n '/2014-12-17 16:17:20/,/2014-12-17 16:17:36/p' test.log

  特別說明:該命令中的兩個日期值必須是日誌檔案中包含的值,否則該命令無效.;先 grep '2014-12-17 16:17:20' test.log 來確定日誌中是否有該 時間點

 (2)按行數擷取

    sed -n ‘10000,20000p’test.log

    sed -i '/關鍵詞/d' catalina.out 刪除包含關鍵詞的行

4.應用場景三:日誌內容特別多,列印在螢幕上不方便檢視

(1)使用moreless命令,

如:cat -n test.log |grep "debug" |more 這樣就分頁列印了,通過點選空格鍵翻頁

(2)使用 >xxx.txt 將其儲存到檔案中,到時可以拉下這個檔案分析

如:cat -n test.log |grep "debug" >debug.txt

5:使用管道進行and or條件處理

  and 使用管道實現 例如: grep-n'日誌排查' test.log| grep'日誌'

  or 用-E 例如:grep -n -E '日誌排查|hello' test.log 滿足兩個關鍵字的都可以找出來

志之所趨,無遠弗屆,窮山距海,不能限也