ホームページ >運用・保守 >Linuxの運用と保守 >Linux サーバーには大量のログがあります。ログを正しく読み取り、エラーを素早く見つけるにはどうすればよいでしょうか?

Linux サーバーには大量のログがあります。ログを正しく読み取り、エラーを素早く見つけるにはどうすればよいでしょうか?

Linux中文社区
Linux中文社区転載
2023-08-01 16:45:251461ブラウズ

大量のログの間違った場所をすばやく見つける

Linux サーバーには大量のログがあります。ログを正しく読み取り、エラーを素早く見つけるにはどうすればよいでしょうか?

ログを動的に表示する

tail -f catalina.out

ログ ファイルを最初から開きます

cat catalina.out

>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行的其他所有日志

最初の方法 (キーワードに基づいて旅行番号を見つける):

Using grep で取得できるログは非常に少ないため、近くのログを確認する必要があります。最初にこれが私がやったことです: cat -n test.log | grep "keyword" キーの行番号を取得します log

[root@yesky logs]# cat -n catalina.out |grep 71789246613230539        [11:07 17:47:11] INFO nanjiang:Edit Old Article:717892466-2020-11-07 17:47:1113230593        [11:07 17:47:15] INFO nanjiangSave Article ID IS:71789246613230595        717892466 article.getDisplayTime()1 = 2020-11-07 16:25:1113230596        717892466 article.getDisplayTime()2 = 2020-11-07 16:25:1113230601        [11:07 17: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 は、ログをクエリすることを意味します13230539 行以降のログをクエリします。前のクエリ結果の最初の 10 レコードを確認します。

  • #
    [root@yesky logs]# cat -n catalina.out |tail -n +13230539|head -n 1013230539        [11:07 17:47:11] INFO nanjiang:Edit Old Article:717892466-2020-11-07 17:47:1113230540        [11:07 17:47:11] INFO Takes:2 ms class com.tmg.cms.manager.dao.article.impl.ArticleContentDaoImpl       getListByArticleId      [NzE3ODkyNDY2]       [int]13230541        [11:07 17:47:11] INFO Takes:1 ms class com.tmg.cms.manager.dao.resourceImage.impl.ResourceImageDaoImpl  load    13230542        [11:07 17:47:11] INFO Takes:0 ms class com.tmg.cms.manager.dao.resourceImage.impl.ResourceImageDaoImpl  load    13230543        [11:07 17:47:11] INFO Takes:1 ms class com.tmg.cms.manager.dao.resourceImage.impl.ResourceImageDaoImpl  load    13230544        [11:07 17:47:11] INFO article.getImage3:/uploadImages/2020/312/02/3NXCRK4U3589_2.jpg13230545        [11:07 17:47:11] INFO Takes:0 ms class com.tmg.cms.manager.dao.resourceImage.impl.ResourceImageDaoImpl  load   13230546        [11:07 17:47:11] INFO Takes:2 ms class com.tmg.cms.manager.dao.privilege.impl.UserDaoImpl       getUserByid     13230547        [11:07 17:47:11] INFO Takes:57 ms class com.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImpl     selectSitemapWithoutAudit       [MQ==]  [int]13230548        [11:07 17:47:11] INFO Takes:5 ms class com.tmg.cms.manager.dao.forbidword.impl.ForbidwordDaoImpl        getForbidwordBysiteid   [MjI=]  [int]
#2 番目の方法: 指定された期間内のログを表示します

まず、範囲期間内でログ クエリを実行し、まず当日中にクエリがあるかどうかを確認します。

grep '11:07 18:29:20' catalina.outgrep '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 -l154

第四种方式:查询最后number行,并查找关键字“结果”

[root@yesky logs]# tail -n 20 catalina.out | grep 'INFO Takes:1'[11:11 22:02:51] INFO Takes:1 ms class com.tmg.cms.manager.dao.config.impl.ConfigInfoDaoImpl    load    [11:11 22:02:51] INFO Takes:1 ms class com.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImpl    getSitemapTop   [NTkwOTQ5]  [int][11:11 22:02:51] INFO Takes:1 ms class com.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImpl    getSitemapTop   [MzI0]  [int][11:11 22:02:51] INFO Takes:1 ms class com.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImpl    getSitemapTop   [MzI3]  [int][11:11 22:02:51] INFO Takes:1 ms class com.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImpl    getSitemapTop   [MzMw]  [int][11:11 22:02:51] INFO Takes:1 ms class com.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImpl    getSitemapTop   [MzA5NA==]  [int][11:11 22:02:51] INFO Takes:1 ms class com.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImpl    getSitemapTop   [Mzc4Mg==]  [int][11:11 22:02:51] INFO Takes:1 ms class com.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImpl    getSitemapTop   [OTM1MA==]  [int][11:11 22:02:51] INFO Takes:1 ms class com.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImpl    getSitemapTop   [MTE5MDMw]  [int][11:11 22:02:51] INFO Takes:1 ms class com.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImpl    getSitemapTop   [NTQ2MzQw]  [int][11:11 22:02:51] INFO Takes:1 ms class com.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImpl    getSitemapTop   [NTg2NzYy]  [int][11:11 22:02:51] INFO Takes:1 ms class com.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImpl    getSitemapTop   [MzYyMjA=]  [int][11:11 22:02:51] INFO Takes:1 ms class com.tmg.cms.manager.dao.configModule.impl.ConfigModuleDaoImpl    getPersonMenuList

第五种方式:查询最后number行,并查找关键字“结果”并且对结果进行标红

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

第六种方式:查询最后number行,并查找关键字“结果”并且对结果进行标红,上下扩展两行

[root@yesky logs]# tail -n 20 catalina.out | grep 'INFO Takes:1' --color -a2[11:11 22:02:51] INFO Takes:0 ms class com.tmg.cms.manager.dao.article.impl.ArticleContentDaoImpl    getArticlePageNum   [NzE4MTM2ODky]  [int][11:11 22:02:51] INFO Takes:1 ms class com.tmg.cms.manager.dao.config.impl.ConfigInfoDaoImpl    load    [com.tmg.cms.manager.model.config.ConfigInfo][11:11 22:02:51] INFO Takes:1 ms class com.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImpl    getSitemapTop   [NTkwOTQ5]  [int][11:11 22:02:51] INFO Takes:1 ms class com.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImpl    getSitemapTop   [MzI0]  [int][11:11 22:02:51] INFO Takes:0 ms class com.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImpl    getSitemapTop   [MzI1]  [int][11:11 22:02:51] INFO Takes:1 ms class com.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImpl    getSitemapTop   [MzI3]  [int][11:11 22:02:51] INFO Takes:1 ms class com.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImpl    getSitemapTop   [MzMw]  [int][11:11 22:02:51] INFO Takes:0 ms class com.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImpl    getSitemapTop   [MzAzNg==]  [int][11:11 22:02:51] INFO Takes:1 ms class com.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImpl    getSitemapTop   [MzA5NA==]  [int][11:11 22:02:51] INFO Takes:1 ms class com.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImpl    getSitemapTop   [Mzc4Mg==]  [int][11:11 22:02:51] INFO Takes:1 ms class com.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImpl    getSitemapTop   [OTM1MA==]  [int][11:11 22:02:51] INFO Takes:0 ms class com.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImpl    getSitemapTop   [MTE0MjQ4]  [int][11:11 22:02:51] INFO Takes:0 ms class com.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImpl    getSitemapTop   [MTE4MDc4]  [int][11:11 22:02:51] INFO Takes:1 ms class com.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImpl    getSitemapTop   [MTE5MDMw]  [int][11:11 22:02:51] INFO Takes:1 ms class com.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImpl    getSitemapTop   [NTQ2MzQw]  [int][11:11 22:02:51] INFO Takes:0 ms class com.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImpl    getSitemapTop   [NTQ3MTIw]  [int][11:11 22:02:51] INFO Takes:0 ms class com.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImpl    getSitemapTop   [NTY4OTYx]  [int][11:11 22:02:51] INFO Takes:1 ms class com.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImpl    getSitemapTop   [NTg2NzYy]  [int][11:11 22:02:51] INFO Takes:1 ms class com.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImpl    getSitemapTop   [MzYyMjA=]  [int][11:11 22:02:51] INFO Takes:1 ms class com.tmg.cms.manager.dao.configModule.impl.ConfigModuleDaoImpl    getPersonMenuList   [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

附加:

  • 全屏导航
    ctrl + F - 向前移动一屏
    ctrl + B - 向后移动一屏
    ctrl + D - 向前移动半屏
    ctrl + U - 向后移动半屏

  • 单行导航
    j - 向前移动一行
    k - 向后移动一行

  • 其它导航
    G - 移动到最后一行
    g - 移动到第一行
    q / ZZ - 退出 less 命令

以上がLinux サーバーには大量のログがあります。ログを正しく読み取り、エラーを素早く見つけるにはどうすればよいでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はLinux中文社区で複製されています。侵害がある場合は、admin@php.cn までご連絡ください。