查询 Nginx 日志经常用到的 Linux 命令

Eric 杂记 704 次浏览 评论已关闭

查询访问最多的前 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