Perl统计nginx日志信息并分析每个小时的数据

#!/usr/bin/perl
# name: logcalc.pl
# calc the amount of access url

use strict;
use warnings;
use diagnostics;

use File::Basename;

my ($arg, $arg_only);
my $FILE;
my ($year, $month, $day, $mon);
my ($time, $method, $url);
my ($amount, $hour, $key, $value);
my (%part, %hash);
my @array;

$arg = shift @ARGV;
$arg_only = basename($arg);

@array = split /_/, $arg_only;
$array[1] =~ /^(\d{4})(\d{2})(\d{2})$/;

# print $&;

$year = $1;
$month = $2;
$day  = $3;

%hash = (
  "01" => "Jan",
  "02" => "Feb",
  "03" => "Mar",
  "04" => "Apr",
  "05" => "May",
  "06" => "Jun",
  "07" => "Jul",
  "08" => "Aug",
  "09" => "Sep",
  "10" => "Oct",
  "11" => "Nov",
  "12" => "Dec",
);

$mon = $hash{$month};

open $FILE, "<$arg" || die "can not open the log file\n$!";
while (<$FILE>) {
  chomp;
  my(undef, undef, $time, undef, undef, $method, $url, undef) = split /\s+/;
#  print "$time, $method, $url\n";
  if($time =~ m/$day\/$mon\/$year:(..)/){
    $hour=$1;
    if($method=~/GET/&&$url=~/^\/p\//){
      $amount++;
      $part{$hour}++;
    }
  }

}

printf("Total amount is %d\n", $amount);

=pod
while(($key, $value) = each %part){
  printf("The amount of %sh is %d\n", $key, $value);
}
=cut

for $key (sort keys %part){
  printf("The amount of %sh is %d\n", $key, $part{$key});
}

Perl统计nginx日志信息并分析每个小时的数据

时间: 2024-11-05 19:32:48

Perl统计nginx日志信息并分析每个小时的数据的相关文章

Python统计nginx脚本信息

1 #!/usr/bin/env python 2 # -*- coding: utf-8 -*- 3 import urllib2 4 import json 5 import subprocess 6 import threading 7 8 #统计10个最长访问的ip 9 ip_raw = subprocess.Popen("cut -d ' ' -f1 host.access.log.* | sort | uniq -c | sort -rn | head -n 10 | awk '{p

统计nginx日志

1.根据访问IP统计UV awk '{print $1}' access.log|sort | uniq -c |wc -l 2.统计访问URL统计PV awk '{print $7}' access.log|wc -l 3.查询访问最频繁的URL awk '{print $7}' access.log|sort | uniq -c |sort -n -k 1 -r|more 4.查询访问最频繁的IP awk '{print $1}' access.log|sort | uniq -c |sor

一个简易的python脚本统计nginx日志里的url及大小

log 日志格式如下 113.221.56.131 - [05/Feb/2015:18:31:19 +0800] " ab.baidu.com GET /media/game/a_.jpg HTTP/1.1" 200 169334 "http://laoma123.ybgj01.com/" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; QQWubi 133)" " 11

统计nginx日志单IP访问请求数排名

下面是我截取一段nginx日志 127.0.0.1 - - [20/Jan/2015:10:54:02 +0800] "GET / HTTP/1.1" 200 20808 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:31.0) Gecko/20100101 Firefox/31.0" 127.0.0.1 - - [20/Jan/2015:10:54:03 +0800] "GET /fa

ngxtop nginx 日志实时峰分析

安装ngxtop wget http://pypi.python.org/packages/source/s/setuptools/setuptools-0.6c11.tar.gz tar zxvf setuptools-0.6c11.tar.gz cd setuptools-0.6c11 python setup.py build python setup.py install wget https://pypi.python.org/packages/source/p/pip/pip-7.1

perl统计http日志ip

use 5.010; while(<>){         my @llog=split;         $ips{$llog[0]}++; } for(keys %ips){         say "$_ $ips{$_}"; }

烂泥:利用awstats分析nginx日志

昨天把nginx的日志进行了切割,关于如何切割nginx日志,可以查看<烂泥:切割nginx日志>这篇文章. 今天打算分析下nginx日志,要分析nginx日志,我们可以通过shell脚本和第三方软件awstats进行分析,在此我们选择的是通过第三方软件awstats进行分析. 要使用awstats分析nginx日志,我们要安装awstats,而在安装awstats之前,我们需要先来介绍下awstats是什么? 一.awstats是什么 awstats是一个免费非常简洁而且强大有个性的基于Pe

nginx日志分析 Awstats日志工具

很多PHP搭建的网站都在由apache转向了nginx.nginx的日志信息如何分析呢?推荐一款结果信息非常详尽的开源工具——Awstats ,它基于perl编写,它的介绍如下: AWStats is a free powerful and featureful tool that generates advanced web, streaming, ftp or mail server statistics, graphically. This log analyzer works as a

Nginx日志统计

1)按每小时切割Nginx访问日志,并且将日志自动上传至FTP服务器: #!/bin/bash #auto mv nginx log shell #by author xiaoming S_LOG=/usr/local/nginx/logs/access.log D_LOG=/data/backup/`date +%Y%m%d%H%M` echo -e "\033[32mPlease wait start cutshell scripts...\033[0m" sleep 2 if [