переносим базу SpamAssassin bayes в MySQL
для начала проверим версию SpamAssassin
$ sudo spamassassin -V
SpamAssassin version 3.4.6
running on Perl version 5.32.1
в нашем случае это 3.4.6
теперь качаем нужный файл со структурой mysql
$ cd ~
$ wget http://svn.apache.org/repos/asf/spamassassin/tags/spamassassin_release_3_4_6/sql/bayes_mysql.sql
подключаемся к движку базы и загружаем структуру
$ mysql -uroot -p
MariaDB [(none)]> CREATE DATABASE sa_bayes;
MariaDB [(none)]> USE sa_bayes;
MariaDB [(none)]> SOURCE ~/bayes_mysql.sql;
создадим пользователя sa_user с паролем Pa$$W0rd (замените на свой) и правами на нашу базу
MariaDB [(none)]> GRANT SELECT, INSERT, UPDATE, DELETE ON sa_bayes.* TO sa_user@localhost IDENTIFIED BY 'Pa$$W0rd';
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [sa_bayes]> quit;
отредактируем конфиг /etc/mail/spamassassin/local.cf
use_bayes 1
bayes_auto_learn 1
bayes_auto_expire 1
# Store bayesian data in MySQL.
# Please make sure you have correct server address, port and database name.
bayes_store_module Mail::SpamAssassin::BayesStore::MySQL
bayes_sql_dsn DBI:mysql:sa_bayes:127.0.0.1:3306
# Store bayesian data in PostgreSQL.
# Please make sure you have correct server address, port and database name.
#bayes_store_module Mail::SpamAssassin::BayesStore::PgSQL
#bayes_sql_dsn DBI:Pg:database=sa_bayes;host=127.0.0.1;port=5432
# SQL username and password.
bayes_sql_username sa_user
bayes_sql_password Pa$$W0rd
# Override the username used for storing data in the database.
# This could be used to group users together to share bayesian filter data.
# You can also use this config option to trick sa-learn to learn data as a specific user.
#bayes_sql_override_username vmail
bayes_sql_override_username amavis
рестартим службу
$ sudo service amavis restart
проверяем, скармливаем тестовое сообщение
$ sa-learn --spam --username=amavis /usr/share/doc/spamassassin/examples/sample-spam.txt
Learned tokens from 1 message(s) (1 message(s) examined)
и проверим наполняемость базы
$ mysql -uroot -p
MariaDB [(none)]> USE sa_bayes;
MariaDB [sa_bayes]> SELECT username,spam_count,ham_count FROM bayes_vars;
+----------+------------+-----------+
| username | spam_count | ham_count |
+----------+------------+-----------+
| amavis | 1 | 1 |
+----------+------------+-----------+
1 row in set (0,000 sec)
MariaDB [sa_bayes]> quit;
и не забудьте отредактировать файл резервирования /var/vmail/backup/backup_mysql.sh, чтобы добавить и нашу базу
# Databases we should backup.
# Multiple databases MUST be seperated by SPACE.
export DATABASES='mysql vmail roundcubemail amavisd iredadmin sogo iredapd sa_bayes'
PS мне скрипт резервирования не пришлось менять, там уже быза бала прописана
А у меня скрипта бэкапа MySQL базы нет. Где его взять-то?