Sauvegarder, sauvegarder, sauvegarder, sauvegarder, sauvegarder, sauvegarder, sauvegarder, sauvegarder, sauvegarder, sauvegarder, sauvegarder, sauvegarder, sauvegarder, sauvegarder, sauvegarder, sauvegarder, sauvegarder, sauvegarder, sauvegarder, sauvegarder, sauvegarder, sauvegarder, sauvegarder, sauvegarder, sauvegarder, sauvegarder, sauvegarder, sauvegarder, sauvegarder, sauvegarder, sauvegarder, sauvegarder, sauvegarder, sauvegarder, sauvegarder, sauvegarder, sauvegarder, sauvegarder, sauvegarder, sauvegarder, sauvegarder, sauvegarder, sauvegarder, sauvegarder, sauvegarder, sauvegarder, sauvegarder, sauvegarder, sauvegarder, sauvegarder, sauvegarder, sauvegarder, sauvegarder, sauvegarder, sauvegarder, sauvegarder, sauvegarder, sauvegarder, sauvegarder, sauvegarder, sauvegarder, sauvegarder, sauvegarder, sauvegarder, sauvegarder, sauvegarder, sauvegarder, sauvegarder, sauvegarder, sauvegarder, sauvegarder, sauvegarder, sauvegarder, sauvegarder, sauvegarder, sauvegarder, sauvegarder, sauvegarder, sauvegarder, sauvegarder, sauvegarder, sauvegarder, sauvegarder, sauvegarder, sauvegarder, sauvegarder, sauvegarder, …
Et oui on ne le répétera jamais assez il faut penser à sauvegarder vos données avant tout. Le 31 mars est la journée international de la sauvegarde donc parlons en. aujourd’hui.
La solution proposée ici est simple car nous allons sauvegarder uniquement les bases de données mais dans un prochain article nous pourrions voir comment sauvegarder directement un container. L’avantage serait de sauvegarder la base de données et les fichiers et de faciliter la restauration en cas de sinistre.
———————————————————————————
27/04/2014 : Ajout de l’expiration du mot de passe au bout de 100 jours pour plus de sécurité (cmd chage)
28/05/2014 : Modification de l’offre de sauvegarde gratuite d’Online, on passe de 10Go à 100Go cool !!!
———————————————————————————
Nous allons mettre en place dans chaque container (ayant une base de données MySQL) un script qui va lister les base de données, les sauvegarder en local et les envoyer sur le FTP offert par Online.
Création du compte système
Le compte sera MySQLBackupManager avec un mot de passe compliquée comme d’habitude 🙂
On va nettoyer le répertoire personnelle du compte pour ne laisser que le script nécessaire et les sauvegardes locales
Voilà tout est en place il reste le fameux scripts mais nous allons d’abord récupérer les informations nécessaires avant.
Tout le reste se passe avec le compte MySQLBackupManager
Création du compte MySQL
Remplacer par le mot de passe que vous souhaitez.
Récupérer les informations du serveur distant
Dans la console Online, sur la liste des serveurs sélectionner votre serveur.
Dans l’onglet « Sauvegarde », activer le compte FTP. Online offre gratuitement un espace de stockage de 10Go 100Go (depuis le 28/05/2014) n’est ce pas magnifique ? En plus c’est fait intelligement c’est à dire que votre serveur de backup est toujours dans un autre datacenter que votre serveur donc en cas d’accident (incendie) et bien vos données seront sauvées.
Après l’activation récupérer :
- l’adresse FTP : dedibackup-dc2.online.net
- le login : le nom de votre serveur sd-xxxxx
- le mot de passe
Mise en place du script de sauvegarde
Récupérer le script sur mon github :
On récupère le script on ajout les droits uniquement pour le compte MySQLBackupManager et ensuite on l’édite pour modifier quelques informations :
- user /host / pass : pour se connecter à la machine ici nous sommes en local c’est donc plus simple mais ca fonctionne aussi avec un serveur distant
- LOGIN_FTP / PASS_FTP / HOST_FTP : pour se connecter au serveur distant (FTP) qui va récupérer les sauvegardes
C’est tout.
Pour que le script fonctionne nous devons installer 2 outils :
- aptitude install cron : pour automatiser la sauvegarde
- aptitude install lftp : pour faire du ftp sur le serveur distant
Ensuite nous devons configurer le cron (tâche planifiée qui va s’exécuter tous les jours à 4h du matin)
Vous pouvez tester le script manuellement la première fois pour vérifier que tout fonctionne correctement :
Et vérifier avec les logs que tout se passe bien.
Quoi sauvegarder ?
Voilà nos sauvegardes MySQL sont en place reste juste à indiquer les bases à sauvegarder. Pour cela il suffit de donner au compte mysql-backup-manager les droits suffisants.
A reproduire sur toutes les bases à sauvegarder. J’ai mis à jour le post concernant la création d’un espace web pour l’activer par défaut.
Sauvegarde sur le FTP
Sur le FTP Online vous retrouverez la structure suivante :
- [CT101]
- backups_daily
- CT101_BACKUP_MYSQL_2014-01-28.tar.gz
- CT101_BACKUP_MYSQL_2014-01-29.tar.gz
- …
- backups_weekly
- CT101_BACKUP_MYSQL_S04.tar.gz
- CT101_BACKUP_MYSQL_S05.tar.gz
- …
- backups_daily
- [CT102]
- backups_daily
- …
- backups_weekly
- …
- backups_daily
C’est largement suffisant pour avoir toujours la bonne sauvegarde au bon moment. Attention vous êtes limités à 100 fichiers sur le serveur FTP d’Online.
Dernière chose il faut penser à vérifier le lendemain que votre sauvegarde a bien fonctionner et essayer de la restaurer dans une base de données vide et voir que les données ne sont pas corrompues sinon tout le travail ci-dessous n’aura servi à rien.
« Save today, Tomorrow is too late »
As tu conscience que tu as redéveloppé un script qui existait déjà sur http://sourceforge.net/projects/automysqlbackup/ ?
J’en avais conscience sans l’avoir. Je me doute bien qu’un script de sauvegarde de MySQL existe déjà. Tu en présentes un « automysqlbackup » mais il en existe bien d’autres.
Merci pour le lien même si je ne changerais surement pas mon script car il fonctionne bien depuis tant d’années et je le maitrise mieux.