automysqlbackup ou l'art de ne pas réinventer la roue

Rédigé par jdrien - - aucun commentaire
On trouve très souvent des personnes qui publient sur leur blog des scripts qui leur permettent de sauvegarder leurs bases de données avec MySQL. Ces scripts faits maison sont nombreux et tentent de répondre précisément aux besoins des rédacteurs.

En fait, la sauvegarde à chaud des bases de données simples est tellement évidente sous MySQL (un bête mysqldump suffit a priori) que l'on est vite tenté de réinventer la roue et de repartir de zéro. On arrivera certainement à un résultat satisfaisant, mais on sera sans doute passé à côté de fonctionnalités ou de problèmes importants (externalisation des sauvegardes, nettoyage, sécurité etc).

C'est suite à la publication sur le Planet Debian d'un énième script de ce type que j'ai appris qu'un outil intégré dans les dépôts de Debian existait : automysqlbackup.

Sous Debian donc, un simple sudo apt-get install automysqlbackup suffit à mettre en place une solution rapide de sauvegarde des bases sous MySQL.

D'origine, on arrive à un résultat très satisfaisant :
 - toutes les bases sont sauvegardées dans des répertoires bien ordonnés ;
 - les sauvegardes sont quotidiennes, hebdomadaires et mensuelles ;
 - les sauvegardes sont gérées par cron ;
 - pas d'utilisateur à renseigner : on utilise le mécanisme interne de debian (utilisateur MySQL debian-sys-maint) ;
 - les sauvegardes sont compressées ;
 - les sauvegardes sont nettoyées au fur et à mesure selon la durée de rétention définie.
 
Avec un peu de configuration on peut (fichier /etc/default/automysqlbackup) :
 - compresser les données avec bzip2 au lieu de gzip ;
 - exclure certaines bases ;
 - transmettre les logs de la sauvegarde par mail ;
 - effectuer des pre-traitements ainsi que des post-traitements : ainsi on peut facilement faire un rsync vers un autre serveur.

Bref, rien ne sert de réinventer la roue ! Et comme l'écrit Thomas Goirand, mainteneur du paquet pour Debian dans son commentaire à propos d'un script de sauvegarde :
Hi,
I'm the maintainer of automysqlbackup. Actually, you should really have a look into automysqlbackup. You thought about few of the problems you may have when doing backups, like the umask, and some others, but you forgot lots of them, and your script is missing many features of automysqlbackup (like daily, weekly, and monthly backups, which covers absolutely all needs). The nice part of automysqlbackup is also that it lived inside Debian for a large amount of time, and gathered feedback from users, which means that many, many, many small problems have been fixed in it. Over the years, I can even say that it's now a fork from the original code (it's unfortunate, and happened because of many things that I added in the package, plus upstream not adding them and releasing a new version which was really different and impossible to merge back).

I would strongly suggest to not work on your own, that's always less good than working as a team. If there's something that is missing in automysqlbackup (actually, I don't think there is), then it can be added, and I would welcome you to contribute patches.
PS : bien sûr, l'expérience de l'écriture de sa propre solution de sauvegarde peut être bénéfique sur le plan des connaissances. On comprend alors vraiment les choses. Et quand on voit des outils comme automysqlbackup on comprend justement qu'il est illusoire de croire que l'on peut penser à tout tout seul...

Écrire un commentaire

Les commentaires sont modérés a posteriori, donc pas la peine de spammer...

Quelle est la dernière lettre du mot syfmd ? :