Thread gnu-grep braucht ewig unter Perl (system) (7 answers)
Opened by equinox at 2010-11-01 12:37

Gast equinox
 2010-11-02 09:22
#142406 #142406
hi.

Danke erstmal für Deine Lösung :)
Sowas in der Art hatte ich auch schonmal, kann mich aber entsinnen, dass dieser Weg mehr Zeit in Anspruch nahm als mit zcat/find | grep. Ich werds aber trotzdem nochmal versuchen.

Der Aufruf sieht übrigens so aus:

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
use strict; use warnings;
use Carp;

sub run {
    my ($self) = shift;
    my $args = $self->{args};

    my $post_method     = "POST";
    my $get_method      = "GET .*=(htt|ft|ph)p(:|%3[aA])(/|%2[fF])";
    my $method_string   = '\"('.$post_method.' |'.$get_method.')';

    if ( (defined $args->{method}) && ($#{$args->{method}} + 1 == 1) ) {
        if (grep lc($_) eq "post", @{$args->{method}}) {
            $method_string = '\"'.$post_method;
        } elsif (grep lc($_) eq "get", @{$args->{method}}) {
            $method_string = '\"('.$get_method.')';
        }
    }

    my $command =  "find ".$args->{docroot}."/logs/ -maxdepth 1 -type f -name access.log\* | xargs -r -n1 -P10 /bin/zgrep -E \" ".$method_string.".* HTTP/[0-9]\\\.[0-9]\\\" [23][0-9]{2}\"";

    open FH, "-|", $command;
    local $/;
    my $output=<FH>;
    close FH;

    return $output;
}

1;



Grüße
equinox
Last edited: 2010-11-02 09:30:07 +0100 (CET)

View full thread gnu-grep braucht ewig unter Perl (system)