當前位置: 妍妍網 > 碼農

Linux大量日誌,7個方法教你快速定位錯誤!

2024-05-22碼農

原文連結:blog.csdn.net/nan1996jiang/article/details/109550303

針對大量log日誌快速定位錯誤地方

動態檢視日誌

tail -f catalina.ou

從頭開啟日誌檔

cat catalina.ou

可以使用 >nanjiangtest.txt 輸出某個新日誌去檢視

[root@yesky logs]# cat -n catalina.out |grep 717892466 >nanjiangtest.txt

tail/head簡單命令使用:

[root@yesky logs]# tail -n number catalina.out 查詢日誌尾部最後number行的日誌
[root@yesky logs]# tail -n +number catalina.out 查詢number行之後的所有日誌
[root@yesky logs]# head -n number catalina.out 查詢日誌檔中的前number行日誌
[root@yesky logs]# head -n -number catalina.out 查詢日誌檔除了最後number行的其他所有日誌

第一種方式(根據關鍵字尋找出行號):

用grep拿到的日誌很少,我們需要檢視附近的日誌。我是這樣做的,首先: cat -n test.log | grep 「關鍵詞」 得到關鍵日誌的行號

[root@yesky logs]# cat -n catalina.out |grep 717892466
13230539 [11:0717:47:11] INFO nanjiang:Edit Old Article:717892466-2020-11-0717:47:11
13230593 [11:0717:47:15] INFO nanjiangSave Article ID IS:717892466
13230595717892466 article.getDisplayTime()1 = 2020-11-0716:25:11
13230596717892466 article.getDisplayTime()2 = 2020-11-0716:25:11
13230601 [11:0717:47:15] INFO 南江 10.10.10.39 edit article 717892466 編輯文章

「cat -n catalina.out|tail -n +13230539|head -n 10」

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

  • head -n 10 則表示在前面的查詢結果裏再查前10條記錄

  • [root@yesky logs]# cat -n catalina.out |tail -n +13230539|head -n 10
    13230539 [11:0717:47:11] INFO nanjiang:Edit Old Article:717892466-2020-11-0717:47:11
    13230540 [11:0717:47:11] INFO Takes:2 ms  classcom.tmg.cms.manager.dao.article.impl.ArticleContentDaoImplgetListByArticleId [NzE3ODkyNDY2] [int]
    13230541 [11:07 17:47:11] INFOTakes:1 ms classcom.tmg.cms.manager.dao.resourceImage.impl.ResourceImageDaoImplload
    13230542 [11:07 17:47:11] INFOTakes:0 ms classcom.tmg.cms.manager.dao.resourceImage.impl.ResourceImageDaoImplload
    13230543 [11:07 17:47:11] INFOTakes:1 ms classcom.tmg.cms.manager.dao.resourceImage.impl.ResourceImageDaoImplload
    13230544 [11:07 17:47:11] INFOarticle.getImage3:/uploadImages/2020/312/02/3NXCRK4U3589_2.jpg
    13230545 [11:07 17:47:11] INFOTakes:0 ms classcom.tmg.cms.manager.dao.resourceImage.impl.ResourceImageDaoImplload
    13230546 [11:07 17:47:11] INFOTakes:2 ms classcom.tmg.cms.manager.dao.privilege.impl.UserDaoImplgetUserByid
    13230547 [11:07 17:47:11] INFOTakes:57 ms classcom.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImplselectSitemapWithoutAudit [MQ
    ==] [int]
    13230548 [11:0717:47:11] INFO Takes:5 ms  classcom.tmg.cms.manager.dao.forbidword.impl.ForbidwordDaoImplgetForbidwordBysiteid [MjI=] [int]

    第二種方式:檢視指定時間段內的日誌

    首先要進行範圍時間段內日誌查詢先檢視是否在當前日之記憶體在,

    grep '11:07 18:29:20' catalina.out
    grep '11:07 18:31:11' catalina.out

    時間範圍內的查詢

    sed -n '/11:07 18:29:20/,/11:07 18:31:11/p' catalina.out 
    sed -n '/11:07 18:29:/,/11:07 18:31:/p' catalina.out

    第三種方式:檢視日誌中特定字元的匹配數目

    [root@yesky logs]# grep '1175109632' catalina.out | wc -l
    154

    第四種方式:查詢最後number行,並尋找關鍵字「結果」

    [root@yesky logs]# tail -n 20 catalina.out | grep 'INFO Takes:1'
    [11:1122:02:51] INFO Takes:1 ms  classcom.tmg.cms.manager.dao.config.impl.ConfigInfoDaoImplload
    [11:11 22:02:51] INFOTakes:1 ms classcom.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImplgetSitemapTop [NTkwOTQ5] [int]
    [11:11 22:02:51] INFOTakes:1 ms classcom.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImplgetSitemapTop [MzI0] [int]
    [11:11 22:02:51] INFOTakes:1 ms classcom.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImplgetSitemapTop [MzI3] [int]
    [11:11 22:02:51] INFOTakes:1 ms classcom.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImplgetSitemapTop [MzMw] [int]
    [11:11 22:02:51] INFOTakes:1 ms classcom.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImplgetSitemapTop [MzA5NA
    ==] [int]
    [11:1122:02:51] INFO Takes:1 ms  classcom.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImplgetSitemapTop [Mzc4Mg==] [int]
    [11:1122:02:51] INFO Takes:1 ms  classcom.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImplgetSitemapTop [OTM1MA==] [int]
    [11:1122:02:51] INFO Takes:1 ms  classcom.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImplgetSitemapTop [MTE5MDMw] [int]
    [11:11 22:02:51] INFOTakes:1 ms classcom.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImplgetSitemapTop [NTQ2MzQw] [int]
    [11:11 22:02:51] INFOTakes:1 ms classcom.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImplgetSitemapTop [NTg2NzYy] [int]
    [11:11 22:02:51] INFOTakes:1 ms classcom.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImplgetSitemapTop [MzYyMjA
    =] [int]
    [11:1122:02:51] INFO Takes:1 ms  classcom.tmg.cms.manager.dao.configModule.impl.ConfigModuleDaoImplgetPersonMenuList

    第五種方式:查詢最後number行,並尋找關鍵字「結果」並且對結果進行標紅

    [root@yesky logs]# tail -n 20 catalina.out | grep 'INFO Takes:1' --color
    [11:1122:02:51] INFO Takes:1 ms  classcom.tmg.cms.manager.dao.config.impl.ConfigInfoDaoImplload
    [11:11 22:02:51] INFOTakes:1 ms classcom.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImplgetSitemapTop [NTkwOTQ5] [int]
    [11:11 22:02:51] INFOTakes:1 ms classcom.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImplgetSitemapTop [MzI0] [int]
    [11:11 22:02:51] INFOTakes:1 ms classcom.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImplgetSitemapTop [MzI3] [int]
    [11:11 22:02:51] INFOTakes:1 ms classcom.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImplgetSitemapTop [MzMw] [int]
    [11:11 22:02:51] INFOTakes:1 ms classcom.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImplgetSitemapTop [MzA5NA
    ==] [int]
    [11:1122:02:51] INFO Takes:1 ms  classcom.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImplgetSitemapTop [Mzc4Mg==] [int]
    [11:1122:02:51] INFO Takes:1 ms  classcom.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImplgetSitemapTop [OTM1MA==] [int]
    [11:1122:02:51] INFO Takes:1 ms  classcom.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImplgetSitemapTop [MTE5MDMw] [int]
    [11:11 22:02:51] INFOTakes:1 ms classcom.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImplgetSitemapTop [NTQ2MzQw] [int]
    [11:11 22:02:51] INFOTakes:1 ms classcom.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImplgetSitemapTop [NTg2NzYy] [int]
    [11:11 22:02:51] INFOTakes:1 ms classcom.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImplgetSitemapTop [MzYyMjA
    =] [int]

    第六種方式:查詢最後number行,並尋找關鍵字「結果」並且對結果進行標紅,上下擴充套件兩行

    [root@yesky logs]# tail -n 20 catalina.out | grep 'INFO Takes:1' --color -a2
    [11:1122:02:51] INFO Takes:0 ms  classcom.tmg.cms.manager.dao.article.impl.ArticleContentDaoImplgetArticlePageNum [NzE4MTM2ODky] [int]
    [11:11 22:02:51] INFOTakes:1 ms classcom.tmg.cms.manager.dao.config.impl.ConfigInfoDaoImplload [com.tmg.cms.manager.model.config.ConfigInfo]
    [11:11 22:02:51] INFOTakes:1 ms classcom.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImplgetSitemapTop [NTkwOTQ5] [int]
    [11:11 22:02:51] INFOTakes:1 ms classcom.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImplgetSitemapTop [MzI0] [int]
    [11:11 22:02:51] INFOTakes:0 ms classcom.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImplgetSitemapTop [MzI1] [int]
    [11:11 22:02:51] INFOTakes:1 ms classcom.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImplgetSitemapTop [MzI3] [int]
    [11:11 22:02:51] INFOTakes:1 ms classcom.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImplgetSitemapTop [MzMw] [int]
    [11:11 22:02:51] INFOTakes:0 ms classcom.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImplgetSitemapTop [MzAzNg
    ==] [int]
    [11:1122:02:51] INFO Takes:1 ms  classcom.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImplgetSitemapTop [MzA5NA==] [int]
    [11:1122:02:51] INFO Takes:1 ms  classcom.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImplgetSitemapTop [Mzc4Mg==] [int]
    [11:1122:02:51] INFO Takes:1 ms  classcom.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImplgetSitemapTop [OTM1MA==] [int]
    [11:1122:02:51] INFO Takes:0 ms  classcom.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImplgetSitemapTop [MTE0MjQ4] [int]
    [11:11 22:02:51] INFOTakes:0 ms classcom.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImplgetSitemapTop [MTE4MDc4] [int]
    [11:11 22:02:51] INFOTakes:1 ms classcom.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImplgetSitemapTop [MTE5MDMw] [int]
    [11:11 22:02:51] INFOTakes:1 ms classcom.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImplgetSitemapTop [NTQ2MzQw] [int]
    [11:11 22:02:51] INFOTakes:0 ms classcom.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImplgetSitemapTop [NTQ3MTIw] [int]
    [11:11 22:02:51] INFOTakes:0 ms classcom.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImplgetSitemapTop [NTY4OTYx] [int]
    [11:11 22:02:51] INFOTakes:1 ms classcom.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImplgetSitemapTop [NTg2NzYy] [int]
    [11:11 22:02:51] INFOTakes:1 ms classcom.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImplgetSitemapTop [MzYyMjA
    =] [int]
    [11:1122:02:51] INFO Takes:1 ms  classcom.tmg.cms.manager.dao.configModule.impl.ConfigModuleDaoImplgetPersonMenuList [com.tmg.cms.manager.model.config.ConfigPersonMenu]

    第七種方式:分頁檢視,使用空格翻頁(使用more/less)

    [root@yesky logs]# tail -n 2000 catalina.out | grep 'INFO Takes:1' --color -a2 | more
    [root@yesky logs]# tail -n 2000 catalina.out | grep 'INFO Takes:1' --color -a2 | less

    附加

    1.全螢幕導航
  • ctrl + F - 向前移動一屏

  • ctrl + B - 向後移動一屏

  • ctrl + D - 向前移動半屏

  • ctrl + U - 向後移動半屏

  • 2.單行導航
  • j - 向前移動一行

  • k - 向後移動一行

  • 3.其它導航
  • G - 移動到最後一行

  • g - 移動到第一行

  • q / ZZ - 結束 less 命令

  • 往期推薦


    點亮,伺服器三年不宕機