Hallo, Am 20.11.07 schrieb David Haller <lists@dhaller.de>:
Hallo,
Am Die, 20 Nov 2007, Christian Salzer schrieb: [alter Rechner]
/dev/sda: Timing cached reads: 3072 MB in 2.00 seconds = 1533.93 MB/sec [.. neuer Rechner] /dev/sdb: Timing cached reads: 1630 MB in 2.00 seconds = 815.69 MB/sec
Die "cached reads" lesen aus dem Hauptspeicher, daher schein mir das mit dem flaschen Kernel für deine 4 GB Hauptspeicher zutreffend.
time cat /data/mail-testlog | grep "@sonst-eine-domain.de"|grep "smtpd"|grep "Nov 18"|grep "5.1.1" -v |grep "5.7.1" -v >/dev/nul
Ansonsten ist deine Pipe-Konstruktion natürlich auch nicht gut. Und das 'cat' ist überflüssig.
Das rührte daher, das es ursprünglich eine von logrotate schon weggeräumte Datei war, und es eigentlich ein bzcat war, da aber auf der alten Maschine ein zcat war, habe ich es halt mit der ausgepackten Datei gemacht.
time grep 'Nov 18.*smtpd.*@sonst-eine-domain\.de' /data/mail-testlog \ | grep -v '5\.[17]\.1' > /dev/null
Da war wieder mein Problem mit diesen verdammten regex, die ich schon vor einiger Zeit mal unters Kopfkissen legen wollte... OK, ist schneller, muss ich zugeben, Alter 9.2er time grep 'Nov 18.*smtpd.*@sonst-eine-domain\.de' /data/mail-testlog | grep -v '5\.[17]\.1' > /dev/null real 0m0.010s user 0m0.005s sys 0m0.005s 10.3er time grep 'Nov 18.*smtpd.*@sonst-eine-domain\.de' /data/mail-testlog | grep -v '5\.[17]\.1' > /dev/null real 0m0.806s user 0m0.796s sys 0m0.016s
Die Reihenfolge der Elemente ggfs. korrigieren. Mit einigen Beispiel-Zeilen könnte man das evtl. noch weiter optimieren.
-dnh
Das war auch nur eine Beispielzeile... Eigentlich ist das eher so ein Monstrum (eine Auswertung von ca. 20): /usr/bin/grep -i "@salzer-online." /var/log/mail|/usr/bin/grep -f /etc/greps/error_50x | /usr/bin/grep -i "`printf "%s %2d" $cs_datum_monat $cs_datum_tag`" | /usr/bin/cut -f 4 -d "<"| /usr/bin/cut -f 1 -d ">"| /usr/bin/sort| /usr/bin/uniq -c | /usr/bin/sort | /usr/bin/tail -n 20 Aber, das Script lief die letzten Jahre immer fein, und nur wenn wieder eine Backscatter-Welle auf den Server hereingebrochen war mit
10000 Rejects/24h, hat es halt vielleicht länger gedauert, aber jetzt ist die Wartezeit auf ca. 20 solche greppes'-Monster einfach zu hoch, um mal schnell nach dem "rechten" zu sehen.
BTW: Gibt es einen "einfacheren" Weg, das Postfix-Log nur nach dem aktuellen Datum zu durchsuchen? Ich habe am Anfang des Scriptes folgendes stehen: #!/bin/sh cs_datum_tag=`/bin/date |/usr/bin/cut -f 3 -d " "` cs_datum_monat=`/bin/date |/usr/bin/cut -f 2 -d " "` test -z "$cs_datum_tag" && cs_datum_tag=`/bin/date |/usr/bin/cut -f 4 -d " "` Aber danke schonmal für den obigen Hinweis, Christian -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org