[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [OT] Wieviel Spam und HAM ist gut für SA?



On Sun, Apr 29, 2007 at 10:21:13AM +0200, Gerhard Brauer wrote:
> Gruesse!
> * Matthias Haegele <mhaegele@linuxrocks.dyndns.org> schrieb am [29.04.07 15:19]:
> > 
> > Ein Script dazu habe ich unten angehängt,
> > das will man unbedingt in einer screen Session starten bei einigen Hundert Mails dauert es wirklich 
> > ewig ...
> > 
> > (Natürlich auch sehr CPU lastig)
> 
> Ist es nicht besser für's massenhafte Lernen die Option --no-sync bei
> sa-learn zu verwenden? Zumindest nutze ich es bei größeren Aktionen.
> Ich "lerne" größere Mengen (eigentlich alles größer 1) immer mit
> --no-sync und mache am Ende dann ein sa-learn --sync.

ich habe mittlerweile drei separate Mailfolder eingerichtet:
einen, in den die zu lernenden Spam-Mails verschoben werden,
einen, in den die false-positives kommen und einen, in den ich zu
lernende HAM-Mails kopiere [dank mutt-Macros jeweils mit einem Klick].

dazu habe ich dann ein "script", das diese Ordner auf Anforderung
einliest, sinnvollerweise tatsächlich mit --no-sync und am Ende dann
den Sync macht. Die Bearbeitungszeit für ~100 Mails liegt dabei bei
geschätzten 1,5 Minuten auf einem PIII-350 mit 512 MB RAM

> 
> Das reduziert die CPU-Last IMHO doch immens.
> Siehe auch die man page sa-learn zu --no-sync.
> 

kann ich nur bestätigen. für größere Mengen ist die --no-sync Option
eine spürbare Ersparnis.

Script ist ebenfalls mal angehängt.Das ist Work in Progress, ich will
noch eine --silent-Option und anderes einbauen, momentan tut es aber
seinen Zweck.

Gruß
Horst

-- 
Others will look to you for stability, so hide when you bite your nails.
#! /bin/bash 
### configuration

# this is where new SPAM is learnt from
SPAMDIR=/home/$USER/Maildir/.toSPAM/cur
# use this directory to make spamassassin learn what HAM means
HAMDIR=/home/$USER/Maildir/.toHAM/cur
# in case of a false positive/negative use this directory
FORGDIR=/home/$USER/Maildir/.toFORG/cur
# this is where sa-learn is located
SA=`which sa-learn`

QUIET=false

### /configuration

## TODO::
# - parse optional parameters
# - write quiet mode
# - enable alternative configfile
# - improve sanity-checks for read/write-access for the user
# -- for directories being mail-directories...

### switches

# redirect all output if quet-mode is switched on
if $QUIET; then 
   exec 1>/dev/null ;
fi

### /switches

### Sanity Checks
# if sa-learn does not exist, then exit
[ ! -f $SA ] && exit 1
# if $SPAMDIR does not exist, then exit
[ ! -d $SPAMDIR ] && exit 1
# if $HAMDIR does not exist, then exit
[ ! -d $HAMDIR ] && exit 1
# if $FORGDIR does not exist, then exit
[ ! -d $FORGDIR ] && exit 1



### /switches

### this is the part that actually runs the job

# forget mails
echo falsche Mails vergessen : `$SA --forget $FORGDIR/*`
# learn SPAM
echo als SPAM einlernen : `$SA --no-sync --spam $SPAMDIR/*`
# learn HAM
echo als HAM  einlernen : `$SA --no-sync --ham $HAMDIR/*`
# synchronise
$SA --sync

# cleanup
rm -f $SPAMDIR/* $HAMDIR/* $FORGDIR/*



Reply to: