./stat_ip.sh live-https.log-0510.gz 1000

#首先用shell脚本可以统计出?日志慢请求查询时间超过?秒对应的ip和对应的调用次数(传两个参数)

  1. #!/bin/bash
  2. log=$
  3. threshold=$
  4. function define()
  5. {
  6. ori_log_path="/home/bjliuzezhou/${log}"
  7. tmp_log_path="/home/bjliuzezhou/temp.log"
  8. tmp_log_path2="/home/bjliuzezhou/temp2.log"
  9. confirm_path="/home/bjliuzezhou/previewlist.log"
  10. }
  11. function gather()
  12. {
  13. echo 'gather start-----------------------------------------------------------------'
  14. zcat ${ori_log_path} | grep 'NewsApp'| grep 'previewlist' | awk '{print $(NF-3),$1}'> ${tmp_log_path}
  15. log_num=`cat ${tmp_log_path} | wc -l`
  16. request_time=`awk '{print $1}' ${tmp_log_path} | awk '{sum+=$1}END{print sum}'`
  17. ave_request_time=`echo | awk "{print ${request_time}/${log_num}}" `
  18. cat ${tmp_log_path} | awk -v th=${threshold} '$1>th {print $2}'> ${tmp_log_path2}
  19. log_num2=`cat ${tmp_log_path2} | wc -l`
  20. ratio=`echo | awk "{print ${log_num2}/${log_num}}" `
  21. cat ${tmp_log_path2}| sort -n | uniq -c | sort -n > ${confirm_path}
  22. # awk -f ip_cn.awk ${confirm_path}
  23. rm -f /home/bjliuzezhou/temp.log
  24. rm -f /home/bjliuzezhou/temp2.log
  25. echo 'gather end--------------------------------------------------------------------'
  26. }
  27. function output()
  28. {
  29. echo "request total time is ${request_time}"
  30. echo "request total number is ${log_num}"
  31. echo "aver request time is ${ave_request_time}"
  32. echo "long request total number is ${log_num2}"
  33. echo "long request time ratio is ${ratio}"
  34. }
  35. function main()
  36. {
  37. define
  38. gather
  39. output
  40. }
  41. main

nohup ./ip_operator.sh preview.log &

  1. #然后将ip后8位置为0(原因参照全国ip段划分),统计出ip段以及对应的次数,并且解析出对应的运营商
    #参数要传刚获取的preview.log,抓取运营商时间较长,慎重!并且需要注意一个坑,awk脚本中不能执行shell脚本!
    #!/bin/bash
  2. cut -d . -f ,, $ > temp.log
  3. sed 's/$/&.0/g' temp.log | sort -n | uniq -c > temp2.log
  4. awk '{system("sh getip.sh " $3)}' temp2.log > zzz.log
  5. rm -rf temp.log
  1. #!/bin/bash
  2. echo | curl ip.cn?ip=$

将最后解析出的temp2.log和zzz.log数据放在excel进行整合,分列,然后去重,开始快乐的统计之旅吧

linux统计cdn日志慢请求的更多相关文章

  1. linux统计nginx日志中请求访问量命令

    Nginx 三种分配策略:轮询.权重.ip_hash(比如你登录了一个网站,登录信息已经保存到 a 机器,但当你做后续操作时的请求会到 b 机器,那么就获取不到你原来登录的信息,此时你就需要重新登录了 ...

  2. Python脚本收集腾讯云CDN日志,并入ELK日志分析

    负责搭建公司日志分析,一直想把CDN日志也放入到日志分析,前些日志终于达成所愿,现在贴出具体做法: 1.收集日志 腾讯云CDN日志一般一小时刷新一次,也就是说当前只能下载一小时之前的日志数据,但据本人 ...

  3. 用shell统计访问日志里每个ip访问次数【转】

    今天,要统计一个系统的每个ip访问次数,于是我找到该系统访问日志,并写脚本实现.   访问日志情况: [root@qular ~]# cd /usr/local/nginx/logs/ [root@q ...

  4. Linux 系统的日志目录

    连接时间的日志 连接时间日志一般由/var/log/wtmp和/var/run/utmp这两个文件记录,通过who查看 who /var/log/wtmp [连接时间日志] who /var/log/ ...

  5. linux 查看登录日志

    原文:http://www.cnblogs.com/wangkangluo1/archive/2011/09/23/2185976.html linux查看日志: # cd /var/log # le ...

  6. linux系统各种日志存储路径和详细介绍

    Linux常见的日志文件详述如下1./var/log/boot.log(自检过程)2./var/log/cron (crontab守护进程crond所派生的子进程的动作)3./var/log/mail ...

  7. linux常用的日志分析脚本

    linux实用的日志分析脚本 日志分析 随意的tail一个access_log文件,下面是一条经典的访问记录 /Dec/::: +] “GET /query/trendxml/district/tod ...

  8. linux系统web日志分析脚本

    linux系统web日志分析这方面工具比较多,比如logwatch或awstats等使用perl语言开发,功能都非常强大.但这些软件都需要进行一些配置,很多朋友往往在技术方面没有投入太多力量,即便参照 ...

  9. linux小应用 —— 日志过滤

    先说问题,统计一个日志文件中去重之后的ip地址的个数.其实这是一个非常常见也比较简单的问题,其中我个人认为最主要的应该是匹配ip地址是这个问题的核心.剩下的就是对linux命令的熟练程度的问题了.首先 ...

随机推荐

  1. 转:MySQL表名不区分大小写

    在LINUX下调一个程序老说找不到表,但是我明明是建了表的,在MYSQL的命令行下也可以查到,为什么程序就找不到表呢? 一.linux中mysql大小写详情: 1.数据库名严格区分大小写 2.表名严格 ...

  2. JAVA中线程的状态

    java thread的运行周期中, 有几种状态, 在 java.lang.Thread.State 中有详细定义和说明: NEW:至今尚未启动的线程的状态. RUNNABLE:可运行线程的线程状态. ...

  3. dedecms学习笔记

    终于弄懂了dedecms的架构和原理,然后搭建了人生中的第一个网站.网站名就不说了. dede的后台在dede中,这是后台代码 templets/default中放的是模板 article 里是文章内 ...

  4. .Net程序员学用Oracle系列(27):PLSQL 之游标、异常和事务

    1.游标 1.1.游标属性 1.2.隐式游标 1.3.游标处理及案例 2.异常 2.1.异常类别 2.2.异常函数 2.3.异常处理及案例 3.事务 3.1.开始事务.结束事务 3.2.自治事务 3. ...

  5. 最近项目用到Dubbo框架,分享一下~

    1. Dubbo是什么? Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案.简单的说,dubbo就是个服务框架,如果没有分布式的需求,其实是不需 ...

  6. angular控制器之间的传值

    每个controller都会有自己的scope,所有的scope都是属于 $rootScope的子或者子的子... 那么问题就好解决了,通过 $rootScope.$broadcast 广播的事件每个 ...

  7. 【2017-05-18】WebForm的Repeater控件和一些简单控件

    一.Repeater控件 1. <%@ %> - 这里面写一些声明和引用的 <%  %> - 编写C#代码的 <%= %> - 往界面上输出一个变量的值 <% ...

  8. Response.AddHeader

    Response.AddHeader使用实例 1.文件下载,指定默认名 Response.AddHeader("content-type","application/x- ...

  9. Struts2 设置global timer

    设置全局的timer需要在web.xml中添加servlet, 并设置load-on-startup 为 1, 然后在servlet的init()中开启timer, 具体代码如下: 1. web.xm ...

  10. NodeJS 入门第二天(EJS模板)

    一.复习 复习:Node.js开发服务器,数据.路由.本地关心的效果,交互: Node.js实际上是极客开发出的一个小玩具,不是银弹.有着别人不具备的怪异特点: 单线程.Non-blocking I/ ...