q986 发表于 2018-8-26 11:33:15

用shell统计访问日志里每个ip访问次数

用shell统计访问日志里每个ip访问次数【转】
  今天,要统计一个系统的每个ip访问次数,于是我找到该系统访问日志,并写脚本实现。
  访问日志情况:
  # cd /usr/local/nginx/logs/
  # head access.log
  59.151.44.186 - - "POST http://ebws.travelsky.com/etcwip/services/CWIPService HTTP/1.0" 200 22584 "-" "Axis/1.4"
  211.151.239.46 - - "POST http://ebws.travelsky.com/etcwip/services/CWIPService HTTP/1.1" 200 26994 "-" "Axis/1.4"
  211.151.239.46 - - "POST http://ebws.travelsky.com/etcwip/services/CWIPService HTTP/1.1" 200 27910 "-" "Axis/1.4"
  这样的日志还有很多......
  开始写脚本:
  # cat a.sh
  #!/bin/bash
  #将28/Jan/2015全天的访问日志放到a.txt文本
  cat access.log |sed -rn '/28\/Jan\/2015/p' > a.txt
  #统计a.txt里面有多少个ip访问
  cat a.txt |awk '{print $1}'|sort |uniq > ipnum.txt
  #通过shell统计每个ip访问次数
  for i in `cat ipnum.txt`
  do
  iptj=`cataccess.log |grep $i | grep -v 400 |wc -l`
  echo "ip地址"$i"在2015-01-28日全天(24小时)累计成功请求"$iptj"次,平均每分钟请求次数为:"$(($iptj/1440)) >> result.txt
  done
  执行脚本:
  #sh a.sh
  查看结果:
  # cat result.txt
  ip地址10.72.14.49在2015-01-28日全天(24小时)累计成功请求0次,平均每分钟请求次数为:0
  ip地址10.72.32.136在2015-01-28日全天(24小时)累计成功请求0次,平均每分钟请求次数为:0
  ip地址211.151.239.39在2015-01-28日全天(24小时)累计成功请求6409763次,平均每分钟请求次数为:4451
  ip地址211.151.239.41在2015-01-28日全天(24小时)累计成功请求6412232次,平均每分钟请求次数为:4452
  ip地址211.151.239.42在2015-01-28日全天(24小时)累计成功请求7440次,平均每分钟请求次数为:5
  ip地址211.151.239.44在2015-01-28日全天(24小时)累计成功请求7494次,平均每分钟请求次数为:5
  ip地址211.151.239.45在2015-01-28日全天(24小时)累计成功请求7533次,平均每分钟请求次数为:5
  ip地址211.151.239.46在2015-01-28日全天(24小时)累计成功请求6413230次,平均每分钟请求次数为:4453
  ip地址211.151.239.51在2015-01-28日全天(24小时)累计成功请求7596次,平均每分钟请求次数为:5
  ip地址59.151.44.181在2015-01-28日全天(24小时)累计成功请求1410次,平均每分钟请求次数为:0
  ip地址59.151.44.182在2015-01-28日全天(24小时)累计成功请求696387次,平均每分钟请求次数为:483
  ip地址59.151.44.183在2015-01-28日全天(24小时)累计成功请求54次,平均每分钟请求次数为:0
  ip地址59.151.44.184在2015-01-28日全天(24小时)累计成功请求809次,平均每分钟请求次数为:0
  ip地址59.151.44.185在2015-01-28日全天(24小时)累计成功请求38次,平均每分钟请求次数为:0
  转自
  用shell统计访问日志里每个ip访问次数_小强_新浪博客
  http://blog.sina.com.cn/s/blog_8e5d24890102wufq.html

页: [1]
查看完整版本: 用shell统计访问日志里每个ip访问次数