You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@spamassassin.apache.org by Ken Menzel <ke...@icarz.com> on 2008/04/02 19:13:16 UTC

Re: purge byes in sql

Hi Miguel, 
I run /usr/local/bin/sa-learn --force-expire daily with MySQL and it 
works fine.

Here is an excellent slide show on use SQL with SA: 
http://people.apache.org/~parker/presentations/MO13slides.pdf

You may also find these SQL queries helpful,  I run them monthly.

echo "Starting Monthly AWl purge - "
echo "Delete AWL entries older than 4 months";

$MYSQL -u$USER -p$PW -h$SERVER -e\
"SELECT count(*) as 4MonthOld FROM awl WHERE lastupdate <= 
DATE_SUB(SYSDATE(), I
NTERVAL 4 MONTH);" \
$DB

$MYSQL -u$USER -p$PW -h$SERVER -e\
"DELETE FROM awl WHERE lastupdate <= DATE_SUB(SYSDATE(), INTERVAL 4 
MONTH);" \
$DB

echo "Delete AWL entries with only a single e-mail over 30 days old"

$MYSQL -u$USER -p$PW -h$SERVER -e\
"SELECT count(*) as 30DayOldSingles FROM awl WHERE count = 1 AND 
lastupdate <= D
ATE_SUB(SYSDATE(), INTERVAL 30 DAY);" \
$DB

$MYSQL -u$USER -p$PW -h$SERVER -e\
"DELETE FROM awl WHERE count = 1 AND lastupdate <= DATE_SUB(SYSDATE(), 
INTERVAL
30 DAY);" \
$DB

echo "Check for insignigcant scoring AWL entries"
$MYSQL -u$USER -p$PW -h$SERVER -e\
"SELECT count(*) as Insignificant FROM awl WHERE totscore/count < .1 AND 
totscor
e/count > .1;" \
 $DB

$MYSQL -u$USER -p$PW -h$SERVER -e\
"DELETE FROM awl WHERE totscore/count < .1 AND totscore/count > .1;" \
 $DB

$MYSQL -u$USER -p$PW -h$SERVER -e\
"SELECT count(*) as TotalBayesSeen FROM bayes_seen;" \
 $DB

echo "Delete bayes seen older than 1 month"

$MYSQL -u$USER -p$PW -h$SERVER -e\
"SELECT count(*) as 1MonthOldBayesSeen FROM bayes_seen WHERE lastupdate 
<= DATE_
SUB(SYSDATE(), INTERVAL 1 MONTH);" \
 $DB

$MYSQL -u$USER -p$PW -h$SERVER -e\
"DELETE FROM bayes_seen WHERE lastupdate <= DATE_SUB(SYSDATE(), INTERVAL 
1 MONTH
); " \
 $DB



Miguel wrote:
> Hi, does SA takes care of purging old bayesian records stored in mysql 
> similar what it does to the traditional DB files?
> If not, what is the recommended procedure to do so?
> regards
>