0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

常用的大日志文件查询命令详解

马哥Linux运维 来源:稀土掘金威廉希尔官方网站 社区 2024-01-02 11:27 次阅读

一、前言

最近需要查询大日志文件的时候,每次打开vim,cat之类的都会卡死,但是需要查看符合条件的共有多少行数据,这颗愁死我了,下面列出一些常用的匹配查询命令。

二、常用的搜索命令

1、grep搜索

      grep 参数 文件名 | head     //从头查找
      grep 参数 文件名 | wc- l    //查看符合条件的有多少行
      cat 文件名 |grep 参数$  //输出以该参数结尾的行内容


2、实例

(1)根据具体的参数来搜索行数


cat /data/weblogs/xxx.access.log  |grep "GET /pixel.jpg?"|wc -l 
      4102386

(2)部分正则查询


    cat /data/weblogs/em.evony.com.access.log |grep "25/Nov/2019[00-59]" |wc -l 
    120

查询25/Nov/2019:15时的所有数据,那么15时后面的分钟数就是00-59

(3)多个条件之间可以使用管道连接,查询同时符合两个条件的行数


    cat /data/weblogs/xxx.log |grep "25/Nov/2019[00-59]" |grep "GET /pixel.jpg?"|wc -l 


    120

(4)查询符合条件1或者符合条件2 的行数


    cat /data/weblogs/xxx.log |grep -E "25/Nov/2019[00-59] |GET /pixel.jpg?"|wc -l 
      4098135


简写: grep -E "exp1|exp2|exp3" | wc -l
参考:https://blog.csdn.net/lijing742180/article/details/84959963

3、grep是模糊查询

在使用grep搜索端口号的时候,查出来的结果不尽人意,什么牛鬼蛇神都查出来了,例子如下:


netstat -anp |grep -i '80'
(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
tcp        0      0 127.0.0.1:80                0.0.0.0:*                   LISTEN      -                   
tcp        0      0 10.17.2.50:80               0.0.0.0:*                   LISTEN      -                   
tcp        0      0 216.66.17.189:80            0.0.0.0:*                   LISTEN      -                   
tcp        0      0 10.17.2.50:10050            10.17.13.2:33801            TIME_WAIT   -    
          

推荐个更好用的,具体查询80端口的使用情况,使用命令:

 netstat -apn | awk '{split($4,arr,":"); if(arr[2] == "80") print $0}'

一步到位,查出来的都是80端口的进程,十分好用。

============ 2019/12/5===================

三、搜索文件中的ip地址

1、匹配ip


grep -Eo '([^0-9]|)((1[0-9]{2}|2[0-4][0-9]|25[0-5]|[1-9][0-9]|[0-9]).){3}(1[0-9][0-9]|2[0-4][0-9]|25[0-5]|[1-9][0-9]|[0-9])([^0-9]|)' xxx.log | sed -nr 's/([^0-9]|)(([0-9]{1,3}.){3}[0-9]{1,3})([^0-9]|)/2/p'|wc -l


31116275

2、查询每个ip出现的次数


grep -E -o "(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)"  xxx.log |sort|uniq -c


      2 99.203.87.103
      2 99.203.87.142
      4 99.203.87.145
      8 99.203.87.153

前面是出现次数,后面是ip

3、更精准的匹配ip


grep -E -o "(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)"  xxx.log|wc -l


32929372

4、模糊匹配ip


grep -E -o "([0-9]{1,3}[.]){3}[0-9]{1,3}" xxx.log|wc -l

32930309

5、多个条件查询ip,先根据限定条件获取指定的行数,然后再搜索ip的个数


cat xxx.log |grep "25/Nov/2019[00-59]" |grep "GET /pixel.jpg?"|grep -E -o "([0-9]{1,3}[.]){3}[0-9]{1,3}"|wc -l 
1110

感觉这些查ip的方法都差不错,因为日志文件一直在增大,所以查出来的结果也不一样,查的速度也比较慢,可能是文件太大了,在此记录一下,总有用得着的时候。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Linux
    +关注

    关注

    87

    文章

    11252

    浏览量

    209099
  • 文件
    +关注

    关注

    1

    文章

    562

    浏览量

    24716
  • 命令
    +关注

    关注

    5

    文章

    681

    浏览量

    22007
  • 日志
    +关注

    关注

    0

    文章

    138

    浏览量

    10635

原文标题:linux使用grep条件搜索大文件的行数等技巧

文章出处:【微信号:magedu-Linux,微信公众号:马哥Linux运维】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    linux 查日志常用命令有哪些

    linux 查日志常用命令
    发表于 06-04 09:00

    Linux文件内容查询命令

    Linux文件内容查询命令 Linux文件内容查询命令  grep、fgrep和egrep
    发表于 01-18 12:45 843次阅读

    Linux关机命令详解

    Linux关机命令详解 在linux下一些常用的关机/重启命令有shutdown、halt、reboot、及init,它们都 可以达到重启系统的目的,但每个
    发表于 01-18 12:52 3627次阅读

    Oracle核心威廉希尔官方网站 之控制文件日志文件

    控制文件日志文件是Oracle数据库中储存信息的重要文件。控制文件用来存放数据库的名字、数据文件
    发表于 03-26 11:03 2次下载

    LINUX操作系统的安装与Linux常用文件命令

    LINUX操作系统的安装与Linux常用文件命令说明。
    发表于 06-02 17:45 3次下载

    详解MySQL三大日志的作用

    MySQL日志 主要包括错误日志查询日志、慢查询日志、事务
    的头像 发表于 07-22 14:44 1322次阅读

    Python常用的几个命令介绍

    Python是一种功能强大的编程语言,广泛用于数据分析、人工智能和Web开发等领域。在使用Python时,需要掌握一些基本的命令,以便更好地管理和运行代码。下面将介绍Python常用的几个命令
    的头像 发表于 06-21 17:12 2319次阅读

    kafka相关命令详解

    kafka常用命令详解
    的头像 发表于 10-20 11:34 894次阅读

    linux解压gz文件命令

    “gzip 源文件”;例压缩“b.txt”文件,执行命令“gzip b.txt”即可。想要解压文件,就执行“gzip -d 压缩文件”或“g
    的头像 发表于 11-08 14:42 5490次阅读

    linux常用命令及作用

    在Linux系统中,有许多常用命令,它们可以用于管理文件、目录、进程等。以下是一些常用命令及它们的作用: ls
    的头像 发表于 11-13 16:45 802次阅读

    linux常用命令及用法

    Linux是一种开源的操作系统,它以稳定、高效和安全的特点受到广大用户的喜爱。掌握Linux的常用命令及其用法对于操作系统的管理和开发都至关重要。本文将详尽、详实、细致地介绍Linux常用命令及其
    的头像 发表于 11-17 09:47 642次阅读

    logcat命令抓取日志方法

    命令抓取日志 logcat -b main -b system -b crash -r 1024 -n 5 -f android.log -v threadtime -b:加载可供查看的缓冲区的日志
    的头像 发表于 11-23 17:31 1086次阅读
    logcat<b class='flag-5'>命令</b>抓取<b class='flag-5'>日志</b>方法

    redis容器内怎么查看redis日志

    redis容器内如何查看redis日志的几种方法。 方法一:通过docker logs命令查看容器日志 docker logs命令是查看容器日志
    的头像 发表于 12-05 10:10 3554次阅读

    linux日志管理之journalctl命令

    journalctl 用来查询 systemd-journald 服务收集到的日志。systemd-journald 服务是 systemd init 系统提供的收集系统日志的服务。
    的头像 发表于 08-14 18:18 2401次阅读
    linux<b class='flag-5'>日志</b>管理之journalctl<b class='flag-5'>命令</b>

    详解kubectl常用命令

    详解kubectl常用命令
    的头像 发表于 11-05 15:39 159次阅读
    <b class='flag-5'>详解</b>kubectl<b class='flag-5'>常用命令</b>