Ce matin j’ai planté mon serveur de mail perso, pas encore d’explication, mais visiblement une barrette de ram défectueuse …
En attendant, et suite au reboot, postgrey ne redémarrait pas avec l’erreur suivante :
ERROR: can’t create DB environment: No such file or directory
Il laissait ensuite son fichier /var/run/postgrey.pid mais ne tournait plus pour autant. Enfin, un strace me donnait des « __db.001 » no such file or directory.
Ne trouvant rien de bien probant sur le net, si ce n’est des types qui disaient qu’après suppression de la base Berkeley dans /var/lib/postgrey, cela marchait (sniff, ma db ?? …), J’ai fini par trouver que ma base de greylisting était corrompue (dans /var/lib/postgrey) et voici la méthode pour la restaurer proprement :
# Installation des outils DB4.3 (ou la version qui est la votre)
aptitude install db4.3-util
# dump des bases actuelles :
cd /var/lib/postgrey
db4.3_dump -p postgrey.db >/var/tmp/postgrey.db
db4.3_dump -p postgrey_clients.db >/var/tmp/postgrey_clients.db
# On vire tout le monde :
killall -15 postgrey
# (le killall m'a répondu "no process killed")
rm /var/run/postgrey.pid
rm /var/lib/postgrey/* -f
# On relance postgrey
/etc/init.d/postgrey start
# Là ca marche ... J'arrête donc le bouzin
/etc/init.d/postgrey stop
# et je restaure mes infos de whitelist :
db4.3_load -f /var/tmp/postgrey_clients.db postgrey_clients.db
db4.3_load -f /var/tmp/postgrey.db postgrey.db
# Et je relance le process comme si de rien n'était ...
/etc/init.d/postgrey start
Voilà, j’espère que cela vous aidera si un jour vous tombez sur le même os …