Will McDonald wrote: > On 14/03/07, Ryan Simpkins <centos at ryansimpkins.com> wrote: >> Mar 14 09:31:36 io sendmail[19416]: ruleset=check_relay, >> arg1=[84.4.97.105], >> arg2=127.0.0.2, relay=[84.4.97.105], reject=554 5.7.1 Rejected >> 84.4.97.105 found in >> bl.spamcop.net >> >> Try doing a simple 'cat /var/log/maillog | grep -c check_relay' > > You can avoid the unnecessary 'cat' by just passing the filename to > grep directly: > > # grep -c check_relay /var/log/maillog > > This *should* be quicker, especially in looping constructs. > >> For my server: >> >> cat /var/log/maillog | grep checK_relay | grep -c spamhaus >> 836 > > Again: > > # grep -c 'checK_relay.*spamhaus' /var/log/maillog > # grep -c 'checK_relay.*spamcop' /var/log/maillog > # grep -c 'checK_relay.*njabl' /var/log/maillog > > Would probably be more efficient and faster, you can test with 'time' > to verify this. You're spawning one process 'grep', instead of three > seperate processes, 'cat, 'grep' and 'grep' again. It might be quicker, but that doesn't make it more efficient;-) I often "evolve" my commandlines (I commonly use one that's 500+ characters long) and if I don't start with a cat I often wish I did:-/ -- Cheers John -- spambait 1aaaaaaa at coco.merseine.nu Z1aaaaaaa at coco.merseine.nu Please do not reply off-list