Thread gnu-grep braucht ewig unter Perl (system)
(7 answers)
Opened by equinox at 2010-11-01 12:37
Hi,
Folgendes Szenario: Ich möchte mit "gnu" grep http-access logs vorfiltern um später in perl die Ergebnisse daraus nach RFI-Patterns zu durchsuchen. Eigentlich funktioniert alles, nur habe ich festgestellt, dass mein greü-Befehl den ich innerhalb von Perl per system() absetze sehr lange braucht (1,5 Minuten). Führe ich den gleichen Befehl in einer Shell aus geht das ganze sehr schnell (2-3 Sekunden). Der Befehl: find /kunden/homepages/20/d264326328/htdocs//logs/ -maxdepth 1 -type f -name access.log* | xargs -r -n1 -P10 /bin/zgrep -E " \"(POST |GET .*=(htt|ft|ph)p(:|%3[aA])(/|%2[fF])).* HTTP/[0-9]\.[0-9]\" [23][0-9]{2}" An der Datenmenge kann es nicht liegen (ca. 600kb), das habe ich bereits getestet. Auch an der Art wie ich den Befehl absetze kann es nicht liegen (mit system() probiert, aber auch mit open FH <$cmd>; usw ..). Interessant ist auch, dass in der Shell mehrere grep-Prozesse gestartet werden, unter Perl nicht. Hat jemand eine Ahnung woran das liegt? Danke und Grüße equinox Last edited: 2010-11-01 12:46:02 +0100 (CET) |