shell脚本实例-nginx日志分析

统计2018/8/6 PV量

grep "06/Aug/2018" access.log|wc -l

统计当天8:00 到9:00的PV

awk '$4>="[06/Aug/2018:21:59:57" && $4<="[06/Aug/2018:24:00:00" {print $0}' access.log|wc -l

统计2018年8月6日 一天内访问最多的10个IP(top10)

grep '06/Aug/2018' access.log | awk '{ips[$1]++} END {for(i in ips){ print i,ips[i]} }'|sort -k2 -rn |head -n10

awk '/06/Aug/2018/{ips[$1]++} END {for(i in ips){print i ,ips[i]}}' access.log |sort -k2rn |head -n10

统计2018年8月6日 一天内访问大于100的IP

awk '/06/Aug/2018/{ips[$1]++} END {for(i in ips){ if(ips[i]>10){print i ,ips[i]}}}' access.log

grep '06/Aug/2018' access.log |awk '{ips[$1]++} END {for(i in ips ){if(ips[i]){ print i,ips[i]} }}'

统计2018年8月6日 访问最多的10个页面($request)

awk '/06/Aug/2018/{urls[$1]++} END {for(i in urls){print i ,urls[i]}}' access.log |sort -k2rn |head -n10

统计2018年8月6日 每个URL访问内容总大小($body_bytes_sent)

awk '/06/Aug/2018/{size[$7]+=$10} END{for(i in size) {print i,size[i]}}' access.log |sort -k2rn |head

统计2018年8月6日 每个IP访问状态码数量($status)

awk '/06/Aug/2018/{ip_code[$1" "$9]++} END{for(i in ip_code) {print i,ip_code[i]}}' access.log |sort -k1rn |head

统计2018年8月6日 IP访问状态码为404及出现次数($status)

awk '/06/Aug/2018/{ if($9=="404"){ip_code[$1" "$9]}} END {for (i in ip_code){print i,ip_code[i]}}' access.log|sort -k3rn |head

统计2018年8月6日 8:30-24:00,访问状态码是404 $9=="404"

awk '$4>="[06/Aug/2018:08:30:00" && $4<="[06/Aug/2018:24:00:00" {if ($9=="404"){ip_code[$1" "$9]++}} END{for(i in ip_code){print i,ip_code[i]}}' access.log

统计2018年8月6日 各种状态码数量

awk '/06/Aug/2018/{code[$9]++} END {for (i in code){print i,code[i]}}' access.log

作者简介: 
陈志珂(头条号:强扭的瓜不好吃)目前就职于中国最大的安卓应用软件公司,任高级工程师现在公司任php开发工程师,python开发工程师,高级运维工程师,公众号“铅笔学园”运维内容合作作者之一。
铅笔学园:IT资源分享|知识分享,做初级程序员的指明灯

猜你喜欢

转载自www.cnblogs.com/qianbixueyuan/p/9452594.html