Sauvegarder une base MySQL

Utiliser une base MySQL c’est bien, la sauvegarder régulièrement c’est mieux…

Un moyen simple de sauvegarder une base MySQL

mysqldump --user=UTILISATEURMYSQL --password=MOTDEPASSEMYSQL\
BASEDEDONNEE | bzip2 > base.sql.bz2

UTILISATEURMYSQL : Utilisateur autorisé à se connecter à la base de donnée (peut-être root).
MOTDEPASSEMYSQL : Mot de passe de l’utilisateur en question.
BASEDEDONNEE : Base de donnée à sauvegarder.

Vous pouvez maintenant envoyer votre fichier par SSH sur une autre machine.

scp base.sql.bz2 UTILISATEUR@MACHINE:REPERTOIRE/.

UTILISATEUR : Utilisateur de MACHINE.
MACHINE : MACHINE où vous souhaitez envoyer la sauvegarde.
REPERTOIRE : Le répertoire où sera stocké la sauvegarde (histoire de ne pas poluer le home de UTILISATEUR).

MACHINE vous demande le mot de passe de UTILISATEUR. C’est bien mais un peu pas pratique pour automatiser la tache de sauvegarde…

Nous allons permettre une authentification par clé et non par mot de passe.

Sur l’ordinateur où se trouve la base de donnée, vous allez transférer la clé SSH publique sur MACHINE :

ssh-copy-id UTILISATEUR@MACHINE

Si vous ne disposez pas de la commande ssh-copy-id, vous pouvez copier le contenu du fichier .ssh/id_rsa.pub de la machine où se trouve la base de donnée, à la suite du fichier .ssh/authorized_keys se trouvant sur MACHINE (vous devrez peut-être créer ce fichier).

Maintenant toute commande SSH vers MACHINE en tant que UTILISATEUR ne demandera plus de mot de passe. Ce n’est valable qu’à partir de l’ordinateur où se trouve la base de donnée évidement.

Automatisons le tout

Créons un fichier sauvegarde-base.sh et ajoutons ceci :

#!/bin/sh
mysqldump --user=UTILISATEURMYSQL --password=MOTDEPASSEMYSQL \
BASEDEDONNEE | bzip2 > base.sql.bz2
scp base.sql.bz2 UTILISATEUR@MACHINE:REPERTOIRE/.

On rend ce fichier executable :

chmod +x sauvegarde-base.sh

On ajoute une ligne au planificateur de tache (crontab -e) :

0 2 * * * ~/sauvegarde-base.sh

Vous avez maintenant une sauvegarde de votre base de donnée planifiée tout les jours à 2h du matin et ceci sans la moindre intervention humaine et  de façon sécurisée.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *