nginx 日志查询
转载:https://www.jianshu.com/p/f105fb19dd0b
1、根据访问IP统计UV
awk '{print $1}' access.log|sort | uniq -c |wc -l
2、统计访问URL统计PV
awk '{print $7}' access.log|wc -l
3、查询访问最频繁的URL
awk '{print $7}' access.log|sort | uniq -c |sort -n -k 1 -r|more
4、查询访问最频繁的IP
awk '{print $1}' access.log|sort | uniq -c |sort -n -k 1 -r|more
5、根据时间段统计查看日志
cat access.log| sed -n '/14/Mar/2015:21/,/14/Mar/2015:22/p'|more
6、统计IP访问个数(和根据访问IP统计UV一样)
cat access.log | awk '{ips[$1]+=1} END{for(ip in ips) print ips[ip],ip}' | sort -nr | wc -l
7、查看3点-6点之间的Ip访问个数
grep "2016:0[3-6]" access.log | awk '{ips[$1]+=1} END{for(ip in ips) print ips[ip],ip}' | sort –nr | wc -l
8、查看3点-6点之间的ip访问数,并且访问数>=200的ip.
grep '2016:0[3-12]' access.log | awk '{ips[$1]+=1}END{for(ip in ips) if(ips[ip]>=200) print ips[ip],ip}' | sort -nr
9、查看并发连接数
netstat -nat|grep ESTABLISHED|wc -l
10、获取每分钟的请求数量,输出成csv文件
cat /usr/local/nginx/logs/access.log | awk '{print substr(2","$1}' > access.csv
11、获取最耗时的请求时间、url、耗时,前10名, 可以修改后面的数字获取更多,不加则获取全部
cat /usr/local/nginx/logs/access.log | awk '{print 7,1,3}' | sort -k3 -rn | head -10
12、查看http的并发请求数与其TCP连接状态
netstat -n | awk '/^tcp/ {++b[NF]} END {for(key in state) print key,"\t",state[key]}'