服务器的日志信息一般来说是比较杂乱的,并且数据量极大,我们很难简单的从上面快速有效的分析出对我们有用的信息。
Linux有个很好用的命令awk
。
以Nginx
access日志来说
格式为
log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"';
日志文件名:web.access.log
查看多少个ip访问
awk '{print $1}' web.access.log|sort|wc -l
查看某个url访问次数
grep "/index/wx/index.html" web.access.log | wc -l
查看某个IP访问的页面
grep ^111.111.111.111 web.access.log
查看某个时间内访问次数
awk '{print $4,$1}' web.access.log | grep 22/Jun/2017:18 | awk '{print $2}' | wc -l
查看访问次数最多的10个url
cat web.access.log | awk '{print $7}' | sort | uniq -c | sort -nr | head -10
查看访问次数最多的10个IP
awk '{print $1}' web.access.log | sort -n -r | uniq -c | sort -n -r | head -10