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)
apt-get 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 ...
# correction orthographique
Posté par Benjamin (site web personnel) . Évalué à 2.
Je ne pouvais pas vérifier si les alternance gras / pasgras faisait joli etc.
# Rah db ...
Posté par GnunuX (site web personnel) . Évalué à 2.
J'ai déjà vu ldap puis cyrus imapd tomber juste a cause de ce ... format ...
Il n'est pas toujours possible de récuperer des données d'un db corrompu. Je me demande réellement pourquoi des projets important continue à utiliser les .db .... si fragile.
[^] # Re: Rah db ...
Posté par Benjamin (site web personnel) . Évalué à 5.
en cas de nécessité de disposer d'une garantie de restauration, une sauvegarde périodique sous forme de dump s'avére nécessaire ...
par exemple dans le logrotate.d :
/etc/init.d/postgrey stop
cd /var/lib/postgrey
db4.3_dump -p postgrey.db | gzip >/var/backups/postgrey.db.gz
db4.3_dump -p postgrey_clients.db |gzip >/var/backups/postgrey_clients.db.gz
/etc/init.d/postgrey start
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.