代码之家  ›  专栏  ›  技术社区  ›  user3052443

显示给定时间段内最多点击次数的Shell命令

  •  0
  • user3052443  · 技术社区  · 5 年前

    我想在我的服务器上显示IP的点击率。我发现了以下几点:

        awk -vDate=`date -d'now-10 minutes' +[%d/%b/%Y:%H:%M:%S` ' { if ($4 > Date) print $1}'  /usr/local/apache/logs/access_log | sort  |uniq -c |sort -n | tail
    

    它显示出

        3346 123.242.4.51
        14315 123.0.0.1
        35951 123.73.173.170
    

    问题是,这一天的情况总是如此。所以如果我在早上8点运行,晚上8点再次运行,它将显示相同的内容。但如果我第二天运行它,它就会改变。我发现我在这里使用的命令,我想,它可能不正确。如果可能的话,有人能给出正确的命令吗?

    1 回复  |  直到 5 年前
        1
  •  0
  •   user3052443    5 年前

    下面是一些日志条目示例。对于这些条目,脚本将在IP 678.138.147.158上显示3次点击,在127.0.0.1上显示2次点击。这里使用的大多数IP都不是有效的IP,以防有人注意到。

        678.138.147.158 - - [25/Jan/2019:13:43:52 -0500] "GET / HTTP/1.1" 200 163 "-" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36"
        665.73.173.170 - - [25/Jan/2019:13:44:18 -0500] "GET / HTTP/1.0" 200 163 "-" "check_http/v1.4.16 (nagios-plugins 1.4.16)"
        127.0.0.1 - - [25/Jan/2019:13:45:01 -0500] "GET /whm-server-status HTTP/1.0" 200 50752 "-" "-"
        678.138.147.158 - - [25/Jan/2019:13:45:18 -0500] "GET / HTTP/1.0" 200 163 "-" "check_http/v1.4.16 (nagios-plugins 1.4.16)"
        150.244.199.72 - - [25/Jan/2019:13:45:57 -0500] "GET / HTTP/1.1" 200 163 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36"
        678.138.147.158 - - [25/Jan/2019:13:46:18 -0500] "GET / HTTP/1.0" 200 163 "-" "check_http/v1.4.16 (nagios-plugins 1.4.16)"
        127.0.0.1 - - [25/Jan/2019:13:47:09 -0500] "GET / HTTP/1.0\n" 400 10087 "-" "-"