Sauvegarde automatique d’une base de données
Voici une procédure pour sauvegarder automatiquement une base de données à intervalles réguliers, en créant un dump de la base, avec la date dans le nom du fichier.
Prérequis : un accès ssh et crontab sur son hébergement
1- Se connecter en ssh :
> ssh hote -luser
Au prompt, entrer le mot de passe.
2- Créer un dossier dédié à nos sauvegardes :
> mkdir save_db
Pour ce tuto, nous mettrons à la fois les fichiers de sauvegardes et les scripts pour les générer. Biensûr, il est possible de s’organiser autrement !
Attention : il est préférable de créer le dossier save_db en dehors de l’arborescence web ! Sinon, les fichiers de sauvegardes seront accessibles en http. Si ce n’est pas possible, penser à protéger votre répertoire avec un .htaccess.
3- Créer le shell qui s’occupe de la sauvegarde :
> cd save_db
> pico sauvegarde_mabase.sh
Pico est un éditeur en ligne de commande, plus simple à utiliser que vi. S’il n’est pas disponible, vous pouvez utiliser vi à la place de pico.
L’éditeur s’ouvre, entrez le code suivant :
#!/bin/sh date=`date "+%Y-%m-%d"` mysqldump --opt -h hôte -u user -ppass base_à_sauvegarder > save_db/mabase-$date.sql
En changeant hôte, user, pass et et base_à_sauvegarder par les accès à votre base de données, et mabase, par le nom du fichier souhaité.
Quittez l’éditeur en sauvegardant (contrôle X puis Y pour pico).
4- Rendre le shell exécutable
> chmod 755 sauvegarde_mabase.sh
Vous pouvez vérifier le bon fonctionnement de votre script en le lançant :
> cd ..
> ./save_db/sauvegarde_mabase.sh
Un nouveau fichier doit avoir été créé dans le dossier save_db.
5- Automatiser la sauvegarde
Editons le fichier crontab :
> crontab -e
Le fichier s’ouvre avec vi (sauf si un autre éditeur par défaut est spécifié).
Entrer l’instruction suivante (sous vi, commencer par taper « i » pour passer en mode insertion):
0 0 * * * ./save_db/sauvegarde_mabase.sh
(Dans ce cas, notre script sera exécuté tous les jours à minuit.)
Enregistrer et quitter (sous vi : echap puis « :wq »)
La console doit vous indiquer :
crontab: installing new crontab
Sinon, c’est qu’il y a une erreur dans votre instruction de cron.
Vous pouvez vérifier que votre cron est bien pris en compte :
> crontab -l





Laissez un commentaire