Vous êtes ici : Accueil » français » Postgrey planté, base de données récupérée...

Postgrey planté, base de données récupérée...

D 25 janvier 2006     A Benjamin Sonntag    


Toutes les versions de cet article : [English] [français]

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 ...