常用Linux日誌檢視命令

2021-09-24 11:32:11 字數 2537 閱讀 6182

檢視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...