Amavis + dspam - jak przećwiczyć dspama.

Pawel Zuzelski z w grabina.waw.pl
Pią, 28 Mar 2008, 20:00:34 CET


Friday 28 of March 2008 19:47:35 WK napisał(a):
> Wiadomość od Adam Ryba:
> > Ja trenowałem dspama skryptem dspam_train (jest w src/tools). Korpusy
> > miałem w dwóch folderach Maildir, więc cały trening wyglądał tak:
> >
> > $ dspam_train shared_account .korpus-spam/cur .korpus-ham/cur
> >
> > Konto shared_account to grupa merged - czyli regułki wspólne dla
> > wszystkich userów.
>
> Hm. A jak się takie konto przygotowuje?
> Bo jak dotąd, to tylko bazy w mysqlu spreparowałem (+ tabele), ale
> liczyłem, że stuff sam je sobie wypełni danymi.

Wypełni sobie sam danymi. dspam tworzy nowe "konto" kiedy jest pierwszy raz 
uruchamiany z opcją --user nazwa_konta (zauważ: brak znaku "=")

Informacje o kontach są przechowywane w tabeli dspam_virtual_uids (lub 
podobnej zależnie od tego jaki wariant bazy danych wybrałeś).

Informacje o grupach DSPAMowych znajdują się w pliku /var/lib/dspam/groups czy 
jakoś tak.

Możesz utworzyć powiedzmy konto shared (to znaczy uczyć dspama z opcją --user 
shared) i dodać usera shared do grupy typu merged, a później już nie używać 
tego użytkownika. (to znaczy, żeby nie był on userem dspamowym 
żadnego "fizycznego" użytkownika).

> Nie zrozumieliśmy się.
> Czy do treningu muszę odpalać startscript dspama?
> U mnie działa przez postfix+amavis.

Demon nie musi być uruchomiony. Jeżeli jest, to do komendy dspam możesz 
dodać --client. Bez tej opcji i tek nie będzie korzystał z demona.

Ja trenuję tak:

Zaużmy, że masz dwa maildiry spam i niespam.

cd spam/cur

num=`ls -1 | grep -c ""`
ptr=1

for I in *; do
  echo -n "$ptr/$num: $I user=nazwa_usera class=spam... "
  dspam --user nazwa_usera --class=spam --source=corpus --process < $I
  echo "DONE"
  ptr=$(($ptr+1))
done

cd ../../niespam/cur

num=`ls -1 | grep -c ""`
ptr=1

for I in *; do
  echo -n "$ptr/$num: $I user=nazwa_usera class=innocent... "
  dspam --user nazwa_usera --class=innocent --source=corpus --process < $I
  echo "DONE"
  ptr=$(($ptr+1))
done

-- 
Pozdrawiam,
Paweł Zuzelski


Więcej informacji o liście dyskusyjnej pld-users-pl