#!/bin/bash TEMPFILE=/tmp/maillog.md5.$$ grep "hauptpostamt postfix" maillog | /usr/local/scripts/postfix.transform.log > $TEMPFILE # zgrep "hauptpostamt postfix" maillog.gz | /usr/local/scripts/postfix.transform.log > $TEMPFILE # zuerst nutzen wir postfix.transform.log, um die Logeinträge die zusammengehören unter einem eindeutigen # muster (md5sum der Message-Id) zu gruppieren. Diese kommt in [] in die 1. Spalte. MD5SUMS=/tmp/md5sums.$$ egrep -i "(from|to)=<$1>" $TEMPFILE | awk 'BEGIN {FS="[][]"} {print $2}' > $MD5SUMS # Nun greppen wir nach from= in dem transformierten Log und schreiben die md5sums in ein File fgrep -f $MD5SUMS $TEMPFILE | sort -k1 | awk ' { if ( lastid != $1 ) printf ("\n# MD5-ID %s\n\n", $1) lastid = $1 printf ("%s ", $4) for (i=6; i<=NF; i++) printf ("%s ", $i) printf ("\n") }' # dieses File nutzen wir, um alle Logeintraege zu extrahieren. Dann wird noch nach der md5sum sortiert, damit man zusammengehoerige Logeintraege in einem Block hat. rm -f $MD5SUMS $TEMPFILE