Créer un serveur de sauvegarde

0

Si la plupart des hébergeurs proposent des solutions de sauvegarde dans leurs offres, ces sauvegardes s'avèrent souvent insuffisantes, nécessitant la mise en place d'un serveur de sauvegardes incrémentales externe. Tout ça pour à peine 5 € euros par mois

Sauvegarde automatique de Mysql

Dans cette deuxième partie de la mise en place d’un serveur de backup, nous allons nous occuper principalement de la sauvegarde des bases de données MYSQL. BackupPC permet la sauvegarde complète d’un serveur, ce qui inclus aussi les bases de données, mais il est tellement plus pratique de pouvoir restaurer ses bases MySQL depuis un dump.

Ce script crée un dossier par base de données, et stock les dumps quotidiens à l’intérieur de chaque dossier. Ainsi nous pourrons ajouter ces dossiers à BackupPC et donc facilement restaurer une, ou plusieurs bases de données, à un instant T.

Création de l’utilisateur mysql pour le dump

Se connecter sur le serveur à sauvegarder et ajouter les droits nécessaires pour l’utilisateur de dump. Dans notre cas, je l’ai simplement appelé « backup »

mysql -u root -p (entrez le mot de passe lorsqu'il vous sera demandé)
 GRANT USAGE,SELECT,LOCK TABLES ON *.* TO backup@localhost IDENTIFIED BY 'MonMotDePasseTopSecret';
 FLUSH PRIVILEGES;
Exit

Maintenant on récupère le script automysqlbackup que l’on va stocker dans un dossier temporaire

mkdir tmpbck
cd tmbbck
wget http://downloads.sourceforge.net/project/automysqlbackup/AutoMySQLBackup/AutoMySQLBackup%20VER%203.0/automysqlbackup-v3.0_rc6.tar.gz
tar zxvf automysqlbackup-v3.0_rc6.tar.gz

Installation automatique :

bash install.sh

Edition de la configuration (suffisamment bien documenté pour être compréhensible). Il s’agit de décommenter les lignes nécessaires (user, password, Dir, etc …)

vi /etc/automysqlbackup/myserver.conf

Là encore, je conseille de choisir un dossier de destination monté sur une partition de grande taille.

A ce stade, vous pouvez tester votre installation :

automysqlbackup /etc/automysqlbackup/myserver.conf

En cas  d’erreur — Warning: Skipping the data of table mysql.event. Specify the –events option explicitly :

  • Editer le fichier de configuration mySQL my.cnf
  • Ajouter/rechercher la section [mysqldump] et ajouter la ligne :
  • events

Enfin on donne les privilèges à l’utilisateur pour exécuter le script

sudo vi /etc/sudoers

Ajouter cette ligne dans le fichier :

backuppc ALL=NOPASSWD:  /usr/local/bin/automysqlbackup

Le script de sauvegarde MySQL est installé sur votre serveur. Il ne reste plus qu’à l’ajouter à la configuration de BackupPC pour qu’il soit exécuté à chaque lancement d’une nouvelle sauvegarde.

Configuration SSH entre le serveur de Backup et les serveurs clients

En partant du principe que nous réalisons des sauvegardes entre serveurs Linux, le plus simple est d’utiliser Rsync via SSH. Il faut donc configurer une paire de clé et copier la clé publique sur les serveurs clients.

Sur le serveur Client (Celui qu’on veut sauvegarder) :

adduser backuppc
echo "backuppc ALL=NOPASSWD: /usr/bin/rsync" >> /etc/sudoers

Sur le serveur de SAUVEGARDE :

sudo su - backuppc
ssh-keygen -t rsa -C "backuppc"
ssh-copy-id backuppc@IP.DU.CLIENT

Ne reste plus, coté client, qu’à ajouter la directive « from=IP.CLIENT » :

vi ~/.ssh/authorized_keys
from="1.2.3.4" ssh-rsa ....


Recevoir la newsletter

Recevoir la newsletter

Recevez les dernières news et astuces Wordpress & Développement Web par email une fois par semaine

Bravo, vous êtes inscrits