sharpds77 发表于 2018-9-1 09:01:52

Apache 日志统计perl脚本

#!/usr/bin/perl -w  #use strict;
  use CGI qw(:standard);
  use CGI::Carp qw(fatalsToBrowser);
  use POSIX;
  $logfile=strftime("%Y-%m-%d",localtime);
  my $param_d = param("d");
  my $param_t = param("t");
  @tfix=qw(01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24);
  if ( $param_d ){
  $logfile=$param_d;
  }
  if ($param_t){
  @tfix=split(/,/,$param_t);
  }
  $log_name="/usr/local/apache2/logs/$logfile/access_log";
  print header, start_html("Downloads count");
  print "Use eg: http://211.94.156.162/cgi-bin/detailcount.cgi?d=2009-11-26&t=01,02";
  print strftime("NOW: %Y-%m-%d %H:%M:%S\n",localtime);
  print "Qurey: date    hours";
  %ip_count=();
  $totle=0;
  $i = 0;
  print ("Valid hours:< ");
  foreach $filesuf (@tfix){
  if (open (file_log,$log_name.".".$filesuf)){
  #               print ("Logfile: $log_name\.$filesuf\n");
  print (" $filesuf");
  while ($line_log = )
  {
  if($line_log=~    qr/n\.sis/){
  #print $line_log;
  @log_ip = split(/\s+/,$line_log);
  $ip_count{$log_ip}+=1;
  }
  }
  close (file_log);
  }else{
  #               print ("Open log file :$filesuf failed");
  }
  }
  print (">");
  print("Capitalized ip and number of occurrences: \n");

  print "  foreach $cap_ip (keys(%ip_count))
  {
  print("");
  #print("$cap_ip   $ip_count{$cap_ip} \n");
  printf("%-17s%s",$cap_ip,$ip_count{$cap_ip});
  print("");
  $totle += $ip_count{$cap_ip};
  $i +=1;
  }
  print "";
  print "\n----------------------------\n";
  print   "    Totle downloads : $totle ";
  print   "    Totle ip             : $i         ";
  print end_html;

页: [1]
查看完整版本: Apache 日志统计perl脚本