awk分析访问日志access.log
- 统计某个IP访问的时间$4、页面$7
awk '/66.249.66.164/ {a[$1]++;print a[$1] ,$1,$4,$7}' access.log
1.统计访问IP次数:
awk '{a[$1]++}END{for(v in a)print v,a[v]}' access.log
2.统计访问访问大于100次的IP:
awk '{a[$1]++}END{for(v in a){if(a[v]>100)print v,a[v]}}' access.log
3.统计访问IP次数并排序取前10:
awk '{a[$1]++}END{for(v in a)print v,a[v]|"sort -k2 -nr |head -10"}' access.log
4.统计时间段访问最多的IP:
awk '$4>="[02/Jan/2017:00:02:00" && $4<="[02/Jan/2017:00:03:00"{a[$1]++}END{for(v in a)print v,a[v]}' access.log
5.统计上一分钟访问量:
date=$(date -d '-1 minute' +%d/%d/%Y:%H:%M)
awk -vdate=$date '$4~date{c++}END{print c}' access.log
6.统计访问最多的10个页面:
awk '{a[$7]++}END{for(v in a)print v,a[v]|"sort -k1 -nr|head -n10"}' access.log
7.统计每个URL数量和返回内容总大小:
awk '{a[$7]++;size[$7]+=$10}END{for(v in a)print a[v],v,size[v]}' access.log
8.统计每个IP访问状态码数量:
awk '{a[$1" "$9]++}END{for(v in a)print v,a[v]}' access.log
9.统计访问IP是404状态次数:
awk '{if($9~/404/)a[$1" "$9]++}END{for(i in a)print v,a[v]}' access.log
评论已关闭