Thread gnu-grep braucht ewig unter Perl (system)
(7 answers)
Opened by equinox at 2010-11-01 12:37
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) |