1. 程式人生 > >awk 統計特定pv和響應時間的最大、最小、平均值

awk 統計特定pv和響應時間的最大、最小、平均值

用戶 特定 ado awk alt $1 最大 log文件 執行

今天有朋友向我請教對一個access log文件裏按URL+IP進行pv和響應時間統計,順便寫了個awk腳本,在此分享一下

access log格式
第一列為域名,第二列為響應時間 第三列為用戶ip

www.baidu.com 1 1.1.1.1
www.baidu.com 1 2.2.2.2
www.baidu.com 3 1.1.1.1
www.baidu.com 1 1.1.1.1
www.baidu.com 1 1.1.1.1
www.baidu.com 5 1.1.1.1
www.baidu.com 1 2.2.2.2
www.baidu.com 1 2.2.2.2
www.google.com 2 2.2.2.2
www.google.com 1 2.2.2.2
www.google.com 2 2.2.2.2
www.google.com 3 2.2.2.2
www.google.com 2 2.2.2.2
www.google.com 4 1.1.1.1
www.google.com 2 1.1.1.1
www.google.com 2 1.1.1.1
www.google.com 5 1.1.1.1

腳本內容

#!/bin/awk

awk ‘BEGIN{
  print "count\tdomain\t\tip\tavg\tmax\tmin"
}{
  count[$1"\t"$3]+=1;
  sum[$1"\t"$3]+=$2;
  if (max[$1"\t"$3] < $2){
    max[$1"\t"$3] = $2
  };
  if (min[$1"\t"$3] == ""){
    min[$1"\t"$3] = $2
  };
  if (min[$1"\t"$3] > $2){
    min[$1"\t"$3] = $2
  }
}END{
  for (i in count){
    print count[i]"\t"i"\t"sum[i]/count[i]"\t"max[i]"\t"min[i];
  }
}‘ /tmp/access.log

執行效果
技術分享圖片

awk 統計特定pv和響應時間的最大、最小、平均值