檢視web應用程式的執行日誌解決執行時異常、出錯是一項基本功。在web程式中我們通過日誌系統(比如log4j)向外部檔案(比如log.txt)寫入了程式執行時的某些日誌(一般都會給日誌行頭加上tag),日誌輸出了程式中約定的一些變數(可能是某個訂單號、某條服務碼、請求id值等標識)的值。
如果哪個訂單處理失敗了,或者某個服務執行異常了,此時我們就可以根據程式中輸出的這些tag(標籤)資訊定位日誌中的記錄,來看看具體的變數值對不對,傳入傳入引數的值等等(畢竟不是開發環境,不能debug只能通過打tag的方式來幫助找錯)。
先介紹一些常用檢視檔案的命令。後面介紹的幾個案例實際工作中經常使用,值得一看!
1.more(分頁)
2.less(less 與 more類似,但使用less可以隨意瀏覽檔案,而more僅能向前移動,卻不能向後移動,而且less在檢視之前不會載入整個檔案)
less命令可以顯示行號,即less -n log.txt
3.tail(尾部)
4.head(頭部)
5.grep(查詢,可以加行號grep -n 『***』 log.txt | more)(可以巧妙利用grep + tail命令定位滿足grep條件的後幾條最新記錄)
小案例:
輸出匹配grep條件的資料行的前後各10行:(可能滿足grep條件的有好多,所以可能輸出好幾個21行為一組的資料)
grep -n -c10 'r0619' caps-biz.txt
輸出最後一次匹配grep條件的資料行的前後各10行:(借助tail命令取最後幾行)
grep -n -c10 'r0619' caps-biz.txt | tail -n 21
grep -n -c10 'r0619' caps-biz.txt | tail -n 21 | less(借助less命令的/pattern可以高亮搜尋詞)
6.cat(輸出檔案內容)
cat 可以顯示行號
cat -n 顯示行號(包括空行)
cat -b 顯示行號(不包括空行)
cat -n log.txt | more
7.nl(將行號格式做比較多的顯示設計)
幾個命令的區別:
linux如何通過命令檢視日誌檔案的某幾:
案例先了解兩個最基本的命令:
tail -n 10 test.log 查詢日誌尾部最後10行的日誌;
tail -n +10 test.log 查詢10行之後的所有日誌;
head -n 10 test.log 查詢日誌檔案中的頭10行日誌;
head -n -10 test.log 查詢日誌檔案除了最後10行的其他所有日誌;
1)按行號檢視---過濾出關鍵字附近的日誌
通常我們用grep拿到的日誌很少,我們需要檢視關鍵資訊附近的日誌.
首先: cat -n log.txt |grep "jiang" ([root@vm1 ~]# grep -n "jiang" log.txt也可以)
注意:less命令的顯示行號是大寫的n,即less -n log.txt
得到關鍵日誌的行號,比如這裡找到包含「jiang」的記錄很多行,假設我們要的結果是第18行附近的日誌。
此時如果我想檢視這個關鍵字前5行和後5行的日誌(當然也可以使用上面的grep命令加-c引數完成):
cat -n log.txt |tail -n +13|head -n 10
tail -n +13表示查詢13行之後的日誌
head -n 10 則表示在前面的查詢結果裡再查前10條記錄
如果想直接看最新的日誌,那麼行號最大的就是。可以根據日誌記錄時間等條件篩選一下,或者使用less命令,不斷地翻頁(end定位到最後)
如果滿足grep條件的日誌很多,那麼可以結合tail命令只顯示最後幾行。
如果我們查詢的日誌很多,列印在螢幕上不方便檢視,有兩個方法:
(1)使用more和less命令,如: cat -n test.log |grep "jiang" |more 這樣就分頁列印了,通過空格鍵翻頁,回車鍵下一行。
(2)使用 >***.txt將其儲存到檔案中,到時可以拿下這個檔案分析.如:
cat -n test.log |grep "jiang" >***.txt
2)根據日期來檢視
一般在日誌系統中都會記錄列印日誌的時間,通常我們非常需要查詢指定時間端的日誌:
特別說明:該命令中的兩個日期值必須是日誌檔案中包含的值,否則該命令無效.
sed -n '/2017-06-04 14:06:27/,/2017-06-04 14:06:34/p' test.log
sed -n '/2017/06/04 14:06:27/,/2017/06/04 14:06:34/p' test.log
上述命令無效,需要轉義:
sed -n '/2017\/06\/04 14:06:27/,/2017\/06\/04 14:06:34/p' test.log
關於日期列印,可以先 grep '2014-12-17 16:17:20' test.log 來確定日誌中是否有該時間點,以確保上一步可以拿到日誌。這個根據時間段查詢日誌是非常有用的命令.
Linux 常用檢視日誌命令
tailweb.2016 06 06.log n300 f檢視底部即最新300條日誌記錄,並實時重新整理 grep nick tailweb.2016 04 04.log c10 檢視字元 nick 前後10條日誌記錄,大寫c linux tail命令用途是依照要求將指定的檔案的最後部分輸出到標準裝...
linux常用檢視日誌命令
功能 1 顯示整個檔案。示例 cat filename 2 把檔案串連線後傳到基本輸出,如將幾個檔案合併為乙個檔案或輸出到螢幕。示例 cat file1 file2 file 說明 把檔案串連線後傳到基本輸出 螢幕或加 filename 到另乙個檔案 cat引數詳解 n 或 number 由 1 開...
Linux 常用檢視日誌命令 tail
本文介紹linux下tail命令的使用方法。linux tail命令用途是依照要求將指定的檔案的最後部分輸出到標準裝置,通常是終端,通俗講來,就是把某個檔案檔案的最後幾行顯示到終端上,假設該檔案有更新,tail會自己主動重新整理,確保你看到最新的檔案內容。一 tail命令語法 tail f c nu...