查询 Nginx 日志经常用到的 Linux 命令
查询访问最多的前 10 个IP
awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -nr | head -n 10
查询最近 30 分钟内访问最多的前 10 个IP
awk -vDate=`date -d'now-30 minutes' +[%d/%b/%Y:%H:%M:%S` '$4 > Date {print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -nr | head -n 10
查询最近 6 小时内访问最多的前 10 个IP
awk -vDate=`date -d'now-6 hours' +[%d/%b/%Y:%H:%M:%S` '$4 > Date {print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -nr | head -n 10
查询最近 2 天内访问最多的前 10 个IP。
awk -vDate=`date -d'now-2 days' +[%d/%b/%Y:%H:%M:%S` '$4 > Date {print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -nr | head -n 10
查询指定 IP 访问的 URL 并按访问次数排序
grep "xxx.xxx.xxx.xxx" /var/log/nginx/access.log | awk '{print $7}' | sort | uniq -c | sort -nr
查询指定 IP 访问使用过的浏览器 UA 信息
grep "xxx.xxx.xxx.xxx" /var/log/nginx/access.log | cut -d " " -f 12- | sort | uniq
查询访问最多的前 50 个 URL
awk '{print $7}' /var/log/nginx/access.log | sort | uniq -c | sort -nr | head -n 50
排除指定 URL 查詢访问最多的前 50 个 URL
grep -v "/favicon.ico" /var/log/nginx/access.log | awk '{print $7}' | sort | uniq -c | sort -nr | head -n 50