美文网首页每周500字程序员IT共论
使用shell脚本检索日志文件

使用shell脚本检索日志文件

作者: lanzhiheng | 来源:发表于2016-03-24 22:25 被阅读599次

    最近在公司看到我经理在gitlab上面发了一些关于游戏数据的检索。主要是使用shell来检索出某个时间点,用户的访问量。

    脚本如下

    tail -12000000 paigu-assess.log | grep user | grep " 200 "|  cut -d' ' -f4 | uniq -c | sort -r | head -10
    

    分为多个管道进行处理

    1. 获得paigu-assess.log的最后12000000条数据,其实也可以写好点tail -n 12000000这样可读性比较高。
    2. 把从1中得到的结果由管道的方式传给grep,这里是对上面检索到的数据,进行匹配,匹配其中包含user关键字的记录。
    3. 2中搜索到的记录中筛选状态码为200的请求(请求成功的记录)
    4. cut -d' '删除记录中的空格并返回一个列表,接着参数-f4获取第四个字段
    • 这里需要详细说明一下,如果记录内容为ruby on rails good map则最后获得的的结果为good
    1. uniq表示对4中的记录进行汇总,(每条记录的唯一性),-c汇总后显示每条唯一记录的出现次数。(很不错的汇总工具,可惜MacOS并没有带这个工具。)
      • 比如我们的结果如下
      ruby
      ruby
      python
      
    • 则最后的显示结果为
    2 ruby
    1 python
    
    1. 对结果进行排序,由大到小。
    2. 从头获取前10条数据。

    总的来说,这个脚本用来获取,最后12000000条访问记录中,用户访问成功的记录汇总,(其实里面每条记录还会有个时间点以秒算的,4中获得的字段其实就是时间),其实就是那个时间点的用户成功访问的记录数汇总。取其中访问量最高的10条记录。这是业务的事情看不懂也没关系,(毕竟是小弟的公司嘛)关键是对上面个命令的拆分。祝各位 Happy Coding!!

    相关文章

      网友评论

        本文标题:使用shell脚本检索日志文件

        本文链接:https://www.haomeiwen.com/subject/wrirlttx.html