路漫漫其修远兮
吾将上下而求索

linux日志获取最多访问的前10个IP

nginx日志分析可以获得很多有用的信息,现在来试试最基本的,获取最多访问的前10个IP地址及访问次数。

既然是统计,那么awk是必不可少的,好用而高效。

当前WEB服务器中连接次数最多的ip地址

#ss -ntu |awk '{print $5}' |sort | uniq -c| sort -nr

查看日志中访问次数最多的前10个IP

[root@a /var/log/nginx]#cat access.log | awk '{print $1}' | sort |uniq -c | sort -nr | head -n 10
  19199 1.184.53.31
  15865 6.233.17.4
   4065 1.166.233.14
   2730 1.180.212.86
   1956 1.166.233.11
   1767 1.166.233.8
    922 1.166.233.82
    912 1.166.233.10
    580 1.166.233.13
    540 1.1.212.216

 

查看日志中出现100次以上的IP

[root@a /var/log/nginx]#cat access.log | awk '{print $1}' | sort |uniq -c | sort -nr | awk '{if ($1 > 1000) print $0}'   
  19199 1.184.53.31
  15865 1.233.17.4
   4065 1.166.233.14
   2730 1.180.212.86
   1956 1.166.233.11
   1767 1.166.233.8

查看最近访问量最高的文件

[root@a /var/log/nginx]#cat access.log | awk '{print $7}' | sort | uniq -c | sort -nr | head
  28675 /wp-admin/admin-ajax.php
   4441 /
    659 /wp-admin/post.php
    595 400
    518 /favicon.ico
    505 /xmlrpc.php
    502 /robots.txt
    443 /wp-content/themes/dux/css/main.css?ver=1.7
    370 /wp-content/themes/dux/js/main.js?ver=1.7

统计某url,一天的访问次数

#cat access.log|grep '12/Aug/2009'|grep '/images/index/e1.gif'|wc|awk '{print $1}'

从日志里查看该ip在干嘛

[root@a /var/log/nginx]#cat access.log | grep 124.166.233.11 | awk '{print $1"\t"$7}' | sort | uniq -c | sort -nr | head
   1147 1.166.233.11	/wp-admin/admin-ajax.php
     41 1.166.233.11	/wp-admin/post.php
     34 1.166.233.11	/
     20 1.166.233.11	/wp-admin/post-new.php
     15 1.166.233.11	/wp-admin/edit.php
     12 1.166.233.11	/?paged=2
     10 1.166.233.11	/favicon.ico

 

列出传输时间超过 30 秒的文件

#cat access.log|awk '($NF > 30){print $7}' |sort -n|uniq -c|sort -nr|head -20

 

列出最最耗时的页面(超过60秒的)

#cat access_log |awk '($NF > 60 && $7~/\.php/){print $7}' |sort -n|uniq -c|sort -nr|head -100

未经允许不得转载:江哥架构师笔记 » linux日志获取最多访问的前10个IP

分享到:更多 ()

评论 抢沙发

评论前必须登录!