[Debian etch] Sauvegarde automatique des bases de données avec envoi par email

Publié le 7 décembre 2008 - Administration Serveur. Tags : ,

Voici sans aucun doute ce que l’on peut considérer comme LE point à ne pas négliger lors de la mise en ligne d’un site : la sauvegarde périodique de la base de données. Combien de fois avez-vous déjà pu lire au détours de forum divers et variés des message de webmasters désemparés qui ont perdu tout ou partie de leur site suite à une attaque?

Se prévenir d’un tel carnage n’est pourtant pas si compliqué : d’abord, il existe pas mal de scripts php (ou autres) pour faire le boulot de façon automatique, ensuite et pour peu que vous ayez un accès total à votre serveur des programmes simples et pratiques dédiés à cette tâche sont disponibles.

En ce qui me concerne je vais vous présenter (comme toujours dans le cadre d’une Debian Etch) la mise en place d’un tel système via l’excellent AutoMysqlBackup.

Voici la procédure à suivre:

1. Pour commencer, téléchargez le script sur à cette adresse : http://sourceforge.net/projects/automysqlbackup puis copiez-le (via le logiciel WinSCP par ex. – en ligne de commande sinon) dans le répertoire « /etc/cron.daily »

2. Configurez ensuite le script en l’éditant :

nano /etc/cron.daily/automysqlbackup.sh.2.5

Modifiez les options suivantes :

USERNAME=root
PASSWORD=rootpass
DBNAMES="DB1 DB2 DB3" (correspond au nom des bases du serveur à sauvegarder)
MAXATTSIZE="4000" (taille maximum pour l'envoi par email des sauvegardes)
MAILADDR=mon@email.com (adresse de réception des sauvegardes)
MAILCONTENT="files" (pour que les sauvegardes soient envoyées par email)

Notez que par défaut le programme se contente de sauvegarder les bases de données en les compressant dans un dossier spécifique (/backups, à la racine) sur le serveur du site, ce qui peut poser des problèmes de récupération dans le cadre d’un crash complet & irrécupérable du système… Je vous conseille donc l’envoi des données sur votre email en complément, sait-on jamais (bien sur si votre base fait 100Mo oubliez…).

3. Pour que l’option d’envoi des sauvegardes par email fonctionne (MAILCONTENT= »files »), il faudra installer en complément « mutt » :

apt-get install mutt

4. Créez ensuite le répertoire de backup sur le serveur :

mkdir /backups

Puis rendez le script exécutable grâce à un CHMOD 755 :

chmod +x /etc/cron.daily/automysqlbackup.sh.2.5

5. Il ne reste plus qu’a paramétrer l’exécution de la sauvegarde journalière, nous allons donc ajouter une tâche CRON :

crontab –e

Ajoutez ceci pour une sauvegarde journalière à 2h10 (plus d’info sur les tâches cron) :

10 2 * * * /etc/cron.daily/automysqlbackup.sh.2.5 > /dev/null 2>&1

Sauvegardez (CTRL+O) puis sortez de l’édition.. c’est en place!
Si tout a été effectué correctment vous recevrez un email quotidien avec les bases sélectionnées attachées (et compressées à +/- 70%) en pièce jointe, et un backup sur le serveur sera également disponible dans le dossier /backups. C’est fait, vous pouvez sortir tranquille :)


Articles sur ce thème :