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)使用more和less命令,
如: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 滿足兩個關鍵字的都可以找出來
志之所趨,無遠弗屆,窮山距海,不能限也