UNItopia News: Brett Computer, Gruppe UnixSysteme, Artikel 530

-------------------------------------------------------------------------------
Titel: gzip als Spamfilter
Artikel: 530                                           Bezug: 0
Verfasser: Lysistrate                                  Datum: 31.01.03 14:52:19
-------------------------------------------------------------------------------
Hallo Leute,
hier kommt ein Shellscript, das prueft, ob eine Nachricht Spam ist oder
nicht.

Man nehme einen Ordner Spam und einen Ordner Normalmail und lasse gzip
drueber laufen. Dann braucht man nur noch eine zu testende Mail.

Es scheint am besten zu gehen, wenn die Nachricht laenger ist bzw.
man mal mehrere Spams hintereinander packt.

Das Skript dazu folgt: (es heisst checkspam)

#!/bin/sh

refgood=mail.good.gz
refspam=mail.spam.gz

test=$*

if [ "x$test" = "x" ]
then
  echo Usage: checkspam filename
  exit
fi

echo Pruefe \'$test\'...

tmp=/tmp/$RANDOM

gzip -dc $refgood >$tmp
cat $test >>$tmp
gzip $tmp


f1=`filesize $refgood`
f2=`filesize $tmp.gz`
diffgood=`expr $f2 - $f1`
rm -f $tmp.gz


gzip -dc $refspam >$tmp
cat $test >>$tmp
gzip $tmp

f1=`filesize $refspam`
f2=`filesize $tmp.gz`
diffspam=`expr $f2 - $f1`
rm -f $tmp.gz

echo Good:$diffgood
echo Spam:$diffspam

if [ $diffgood -le $diffspam ]
then
  echo Nachricht ist in Ordnung.
else
  echo Nachricht ist Spam.
fi