服务器的日志信息一般来说是比较杂乱的,并且数据量极大,我们很难简单的从上面快速有效的分析出对我们有用的信息。

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