linux查找有用日志常用技巧


  對於高級測試人員來說.需要有快速定位問題的能力,而查看有效的日志就是其中有效的方法之一,然而服務器上的日志多如牛毛,如何快速從中找出所需信息非常重要,以下是我在工作中用到的查找日志的簡單命令,希望對大家有所幫助。

  

一、先必須了解兩個最基本的命令:

說明:通常catalina.out 為日志文件,這里用test.log代替

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

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

head -n 10  test.log  查詢日志文件中的頭10行日志;

head -n -10  test.log   查詢日志文件除了最后10行的其他所有日志;

grep -A10 “你好”  查看包含“你好“日志以及之后的10行日志;

grep -B10 “你好”  查看包含“你好“日志以及之前的10行日志;

cut -d:f1 test.log 顯示第一個域

        linux查找日志技巧
 
 
二、常見場景及技巧

  場景1: 按行號查看---過濾出關鍵字附近的日志

    因為通常時候我們用grep拿到的日志很少,我們需要查看附近的日志.

    我是這樣做的,首先: cat -n test.log |grep "地形"  得到關鍵日志的行號

        linux查找日志技巧

  得到"地形"關鍵字所在的行號是102行. 此時如果我想查看這個關鍵字前10行和后10行的日志:

  cat -n test.log |tail -n +92|head -n 20

   其中: tail -n +92表示查詢92行之后的日志

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

 

        

 

或者 cat -n test.log| grep -A10 "地形" 

顯示包含“地形”日志及之后的10行日志

或者 cat -n test.log| grep -B10 "地形" 

 顯示包含“地形”日志及之前的10行日志

 

場景2:那么按日期怎么查呢?  通常我們非常需要查找指定時間端的日志

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

特別說明:上面的兩個日期必須是日志中打印出來的日志,否則無效.


 

關於日期正確性,可以用tail -n 10000  模糊查出日志找到大體的位置將日期拷貝出來

關於日期打印,可以先

grep '2014-12-17 16:17:20' test.log

來確定日志中是否有該時間點,以確保第4步可以拿到日志這個根據時間段查詢日志是非常有用的命令.

 

如果我們查找的日志很多,打印在屏幕上不方便查看, 有兩個方法:

(1)使用more和less命令, 如: cat -n test.log |grep "地形" |more     這樣就分頁打印了,通過點擊空格鍵翻頁

(2)使用 >xxx.txt 將其保存到文件中,到時可以拉下這個文件分析.如:

cat -n test.log |grep "地形"  >xxx.txt


 

 

這幾個日志查看方法應該可以滿足日常需求了.

 

 

    

 

 

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM