PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Script: mailgrep



fork
13.08.14, 14:49
Hi,

mal wieder ein kleines Script. Vielleicht kanns jemand gebrauchen.

mailgrep

Es zeigt aus den letzten paar Mailserver-logfiles zu einer eingegebenen E-Mailadresse(Empfänger oder Absender) anhand der gefundenen Message-IDs den Mailfluss für diese Nachrichten an.

Ich nutze das mit postfix unter Ubuntu/Debian.



#!/bin/bash

if [ "$#" -lt 1 ]; then
echo -e "\nProgram: mailgrep\n";
echo -e "Description: Show information about specific mailadresses from mail.log"
echo -e "\nUsage: $(basename $0) <email-address>\n"
exit 1
fi

address="$1"
tmp1=$(mktemp)
cd /var/log

echo "Digging Logfiles..."

{ zcat mail.log.6.gz mail.log.5.gz mail.log.4.gz mail.log.3.gz mail.log.2.gz; cat mail.log.1 mail.log.0 mail.log; } 2>/dev/null \
| grep $address \
| grep -v NOQUEUE \
| awk '{print $6}' \
| cut -d: -f1 \
| sort \
| uniq \
| grep -E "[0-9A-F]{11}" >$tmp1


{
zcat mail.log.6.gz mail.log.5.gz mail.log.4.gz mail.log.3.gz mail.log.2.gz
cat mail.log.1 mail.log.0 mail.log
} 2>/dev/null | fgrep -f$tmp1

rm -f $tmp1