每周500字程序员IT共论

使用shell脚本检索日志文件

2016-03-24  本文已影响599人  lanzhiheng

最近在公司看到我经理在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获取第四个字段
  1. uniq表示对4中的记录进行汇总,(每条记录的唯一性),-c汇总后显示每条唯一记录的出现次数。(很不错的汇总工具,可惜MacOS并没有带这个工具。)
    • 比如我们的结果如下
    ruby
    ruby
    python
    
2 ruby
1 python
  1. 对结果进行排序,由大到小。
  2. 从头获取前10条数据。

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

上一篇下一篇

猜你喜欢

热点阅读