Die Migration von Plesk auf einen neuen Server funktioniert in der Regel relativ einfach. Kompliziert wird es erst dann, wenn umfangreiche Blacklists und Whitelists in SpamAssassin eingepflegt wurden. Die entsprechende Config-Datei findet man zwar unter /etc/spamassassin/local.cf, jedoch werden alle Änderungen darin gnadenlos durch Plesk überschrieben, da Plesk diese Listen ins seiner internen MySQL-Datenbank verwaltet.

Das folgende Script liest die alte local.cf-Datei und  importiert Spam Assassin’s Blacklist und Whitelist automatisch in die Datenbank von Plesk.

#!/bin/bash
#
# import-sa-lists 1.00
#
# Migrates Plesk based Spamassassin b/w-lists to a new server.
#
# CALL:
# ./import-sa-lists local.cf_to_import
#
# (c)2017 Harald Schneider
#

SA_WLIST_ADD="/usr/sbin/plesk bin spamassassin --update-server -whitelist add:"
SA_BLIST_ADD="/usr/sbin/plesk bin spamassassin --update-server -blacklist add:"

# avoid globbing (expansion of *)
set -f

echo "Stopping Spamassassin Service ..."
service spamassassin stop

# Import Whitelist
#
echo "Importing Whitelist ..."

LINE=$(sed -n -e '/^whitelist_from/p' $1)
array=(${LINE// / })
array=("${array[@]:1}")

for i in "${!array[@]}"
do
 echo "Adding to Whitelist: "${array[i]}
 ${SA_WLIST_ADD}${array[i]}
done

# Import Blacklist
#
echo
echo "Importing Blacklist ..."

LINE=$(sed -n -e '/^blacklist_from/p' $1)
array=(${LINE// / })
array=("${array[@]:1}")

for i in "${!array[@]}"
do
 echo "Adding to Blacklist: "${array[i]}
 ${SA_BLIST_ADD}${array[i]}
done

echo "Starting Spamassassin Service ..."
service spamassassin start

echo "DONE!"
exit 0

Beim Aufruf wird lediglich die alte local.cf-Datei übergeben:

./import-sa-lists.sh local.cf.old

In der local.cf-Datei gibt es 2 Zeilen die jeweils mit blacklist_from bzw. whitelist_from beginnen. Direkt dahinter stehen in der selben Zeile alle zugehörigen Emailadressen.

Das Script liest die Einträge und übergibt diese nacheinander an Plesk. Anschliessend erzeugt Plesk automatisch die passende local.cf-Datei unter /etc/spamassassin.

Der neue Server ist nun startklar!