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

    文章

    10991

    浏览量

    206736
  • 文件
    +关注

    关注

    1

    文章

    540

    浏览量

    24402
  • 命令
    +关注

    关注

    5

    文章

    638

    浏览量

    21849
  • 日志
    +关注

    关注

    0

    文章

    126

    浏览量

    10526

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

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

收藏 人收藏

    评论

    相关推荐

    关于linux系统的日志文件的学习与理解

    — 来自X的日志信息。12. /var/log/alternatives.log – 更新替代信息都记录在这个文件中。13. /var/log/btmp – 记录所有失败登录信息。使用last命令可以查看
    发表于 10-25 15:06

    IPE命令行(ipecmd)是否禁止日志文件

    嘿,所有,我现在把一个Windows批处理文件用于生产环境中,通过IPE命令行(iPECDM.jar)编程设备。我写的设备没有问题,但是每次运行命令时,我最终得到5个日志
    发表于 10-16 11:27

    MariaDB慢查询日志的配置

    传统IDC部署网站(MariaDB慢查询日志,Tomcat_JDK部署)
    发表于 05-10 14:54

    JAR文件包及jar命令详解

    制作可执行的JAR文件包及jar命令详解常常在网上看到有人询问:如何把 java 程序编译成 .exe 文件。通常回答只有两种,一种是制作一个可执行的 JAR
    发表于 07-12 08:37

    linux 查日志常用命令有哪些

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

    如何在两个局域网内共享一台打印机 ,常用网络命令命令实例详解

    怎样在两个局域网内共享一台打印机 。常用网络命令命令实例详解
    发表于 06-09 16:31

    CAM填铜皮命令详解

    CAM填铜皮命令详解
    发表于 01-28 23:28 0次下载

    Linux文件内容查询命令

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

    Linux关机命令详解

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

    Linux日志文件系统解析

    在近代历史上,日志文件系统被认为十分奇特,主要是处于研究阶段。而如今,日志文件系统(ext3)已经成为 Linux的缺省文件系统。本文向大家
    发表于 11-01 15:23 0次下载
    Linux<b class='flag-5'>日志</b><b class='flag-5'>文件</b>系统解析

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

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

    详解MySQL三大日志的作用

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

    Linux cat命令详解

    `cat`命令是Linux中最常用命令之一,`cat`命令的名称来自于con**cat**enate。它可以读取和连接文件,并将其内容写入
    的头像 发表于 12-14 17:24 9081次阅读

    kafka相关命令详解

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

    logcat命令抓取日志方法

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