perl分析apache日志

浏览: 140 发布日期: 2016-10-11 分类: perl
#!/usr/bin/perl
 
use Getopt::Std;
use warnings;
use strict;
 
sub load_log_file($) {
        my $log_filename = shift;
 
        open(FILE, "<", $log_filename) || die "Cannot open log file: $!\n";
        while(my $line = <FILE>) {
                $line =~ /^([0-9.]+)\s([\w.-]+)\s([\w.-]+)\s(\[[^\[\]]+\])\s"((?:[^"]|\")+)"\s(\d{3})\s(\d+|-)\s"((?:[^"]|\")+)"\s"((?:[^"]|\")+)"$/;   
 
                print "$1\n";
        }
 
        close FILE;
}
 
my %opts = ();
getopts("s:", \%opts);
if ($opts{'s'}) {
        print "LOADING LOGFILE $opts{'s'}";
        load_log_file($opts{'s'});
}
返回顶部