976 Beiträge rss | 32 Nutzer online

Bash-Script für Spam-Protokoll

Wir sortieren auf unserem Server mit Amavis und SpamAsassin unsere Mail und prüfen sie auf Viren. Spam-Mails werden mit gzip gepackt und landen in einem gemeinsamen Quarantäne-Verzeichnis.

Damit wir nicht immer nachsehen müssen, ob versehentlich false positives in der Quarantäne gelandet sind, habe ich das folgende Script gebastelt.

Es sucht im Spam-Verzeichnis mit dem Befehl find alle Dateien mit "spam" am Anfang heraus, die innerhalb des letzten Tages erzeugt wurden.

Aus den Mails filtert es Absender, Empfänger und Betreff und schreibt diese in die Standardausgabe.

Statt auf den Bildschirm kann man die Informationen auch in eine Mail stecken, zum Beispiel mit

./spam_notifier.sh | mail -s"Spam-Report" user@foo.bar

Wer's brauchen kann: Viel Spaß damit.

Wer eine bessere Idee hat: Her damit :-)

...übrigens: Der so erzeugte und per Mail versandte Spam-Report bleibt ziemlich sicher im Spam-Filter Ihres Mail-Clients hängen. Aber das können Sie dem Client ja abgewöhnen ;-)

#! /bin/sh

###############################################################

# spam_notifier.sh

# Spam Notifier

#

# liest From, Subject und To aus gespeicherten Spam-Mails

#

# Voraussetzung: Spam-Dateien muessen als gz gespeichert sein

# (beispielsweise in Amavis-SpamAssassin-Umgebungen)

#

# 21.12.2003

###############################################################

echo Spam-Report von $HOSTNAME

date

echo

for spamfile in $(find /var/virusmails/ -name 'spam*' -mtime -1)

do

echo -------------------------------------

echo $spamfile

gunzip -c $spamfile | egrep '^From:|^Subject:|^To:'

done

Korrektur gegenüber der zuvor veröffentlichten Version:

- statt find /var/virusmails/spam* steht jetzt find /var/virusmails -name 'spam*' im Quelltext

- statt -mtime 1 muss es -mtime -1 heißen

Mehr dazu:

Aktualisiert am: 01.01.2004




Ihr Kommentar:


Name:


Copyright © goldmann.de 1999-2012   | Tippscout 5.0
Zurück Startseite