Mettre en place une politique de sauvegarde efficace pour une serveur Linux peut rapidement devenir un casse tête.
Entre le choix de la solution (payante ou gratuite), la simplicité d’utilisation, le système de restauration etc…
Sous linux, certains conseillerons d’utiliser Rsync pour sauvegarder vos données vers un serveur distants, d’autres vous redirigerons vers des solutions opensource telle que Bacula.
En tout cas, sachez qu’il existe une multitude de solutions de sauvegarde plus ou moins fonctionnelle et efficace gratuite ou payante.
Dans ce tutoriel, nous allons voir comment utiliser rdiff-backup et comment installer son interface web rdiff-web.
Pourquoi rdiff-backup ?
Parce-que, je voulais simplement sauvegarder le dossier /home/ des utilisateurs de mon serveur web contenant les fichiers de leurs sites web et leur offrir une jolie interface Web pour qu’ils puissent gérer les sauvegardes et les restaurer à l’occasion.
Ce qui est intéressant avec rdiff-backup c’est le fait que ce logiciel fasse des sauvegardes incrémentales, mais si un fichier n’est pas modifié, il ne sera pas sauvegardé une seconde fois, ce qui permet de sauvegarder de l’espace disque.
Maintenant passons à l’installation:
Sur Ubuntu / Debian:
sudo apt-get install rdiff-backup
Sous Centos
yum install rdiff-backup
Utilisation de rdiff-backup
Faire une sauvegarde
L’utilisation de rdiff-backup se fait exclusivement en ligne de commandes:
Par exemples, imaginons que je souhaite faire une sauvegarde du dossier /home/denis/www/ dans le dossier /home/denis/backup/www/
rdiff-backup /home/denis/www/ /home/denis/backup/www/
Simple non?
Nous allons voir maintenant quelques commandes utiles:
Voir les statistiques de la dernière sauvegarde
rdiff-backup-statistics /dossier-de-sauvegarde
Voir la liste des incréments d’une sauvegarde:
rdiff-backup -l /dossier-de-sauvegarde
Restaurer une sauvegarde
Pour restaurer la dernière sauvegarde d’un repertoire faites juste:
rdiff-backup --force -r now /dossier-de-sauvegarde/ /dossier-cible/
Pour restaurer une sauvegarde plus anciennes faites comme ceci:
rdiff-backup --force -r XD /dossier-de-sauvegarde/ /dossier-cible/
Ou X est le nombre de jours en arrière ou l’on souhaite restaurer les données.
Exemple si je veux restaurer mon dossier comme il était il y a trois jours:
rdiff-backup --force -r 3D /dossier-de-sauvegarde/ /dossier-cible/
Une autre façon plus précise consiste à pointer directement sur la sauvegarde incrémentale de la sauvegarde que l’on veut restaurer.
Il suffit pour cela de lister les sauvegardes avec la commande rdiff-backup -l exemples:
[root@vps ~]# rdiff-backup -l /home/denis/backup/bdd/ Found 7 increments: increments.2014-04-26T23:30:06+04:00.dir Sat Apr 26 23:30:06 2014 increments.2014-04-27T23:30:07+04:00.dir Sun Apr 27 23:30:07 2014 increments.2014-04-28T23:30:20+04:00.dir Mon Apr 28 23:30:20 2014 increments.2014-04-29T23:30:27+04:00.dir Tue Apr 29 23:30:27 2014 increments.2014-04-30T23:30:04+04:00.dir Wed Apr 30 23:30:04 2014 increments.2014-05-01T23:30:21+04:00.dir Thu May 1 23:30:21 2014 increments.2014-05-02T23:30:12+04:00.dir Fri May 2 23:30:12 2014 Current mirror: Sat May 3 23:30:05 2014
Par exemple, si vous voulez restaurer la sauvegarde du 26 avril:
rdiff-backup --force -r 2014-04-26T23:30:06+04:00 /dossier-de-sauvegarde/ /dossier-cible/
Evidement si vous souhaitez juste restaurer un fichier vous pouvez le faire en le spécifiant directement:
rdiff-backup --force -r 2014-04-26T23:30:06+04:00 /dossier-de-sauvegarde/index.php /dossier-cible/index.php
Durée de retention des sauvegardes
Vous pouvez aussi spécifier une durée de retention des sauvegardes, si vous ne souhaitez conserver les sauvegardes que des 7 derniers jours vous pouvez utiliser la commande suivante:
rdiff-backup --remove-older-than 7D --force /dossier-de-sauvegarde/
Sauvegarde distantes
Vous pouvez aussi effectuer vos sauvegardes vers un serveur distant en utilisant SSH, rdiff-backup n’a pas besoins d’être installer sur le server distant.
On utilise donc la même commande que pour une sauvegarde locale mais en rajoutant les informations SSH:
rdiff-backup /home/denis/www/ root@ip-serveur distant::/home/denis/backup/www/
Les autres commandes fonctionnent de la meme façon, il suffit juste de remplacer « /dossier-de-sauvegarde/ » par « root@ip-serveur distant::/dossier-de-sauvegarde/ »
Pour plus de simplicité n’oubliez pas de créer une clef SSH entre les deux serveurs.
Astuce: sauvegarder une base de donnée MySQL.
rdiff-backup ne sauvegarde que des fichiers, pour sauvegarder une base de donnée, je fait d’abord un dump de la base de donnée en SQL, puis je fait une sauvegarde du fichier et enfin je supprime le dump de la base de données.
Voici la marche à suivre:
##dump de la base de donnée mysqldump -u root -p nom-de-la-bdd > /dossier-temporaire-pour-le-fichier-sql/nom-de-la-bdd.sql ##Sauvegarde avec rdiff-web rdiff-backup --include /dossier-temporaire-pour-le-fichier-sql/nom-de-la-bdd.sql --exclude /dossier-temporaire-pour-le-fichier-sql/ /dossier-temporaire-pour-le-fichier-sql/ /dossier-de-sauvegarde/ ##On supprime le fichier sql rm -rf /dossier-temporaire-pour-le-fichier-sql/nom-de-la-bdd.sql
Bonus
Voic un script que j’utilise pour faire mes sauvegardes:
#!/bin/bash ##Sauvegarde du www de la base de donnée ##Création du dump de la base de donnée mysqldump -u root -p"mot de passe" nom-de-la-bdd > /home/denis/nom-de-la-bdd.sql ##Sauvegarde du dossier /home/denis/www/ rdiff-backup /home/denis/www/ /home/denis/backup/www/ #Sauvegarde de la base de donnée rdiff-backup --include /home/denis/nom-de-la-bdd.sql --exclude /home/denis/ /home/denis/ /home/denis/backup/bdd/ #On supprime les sauvegardes anciennes de plus de 7 jours rdiff-backup --remove-older-than 7D --force /home/denis/backup/www/ rdiff-backup --remove-older-than 7D --force /home/denis/backup/bdd/ #On supprime le fichier sql rm -f /home/denis/nom-de-la-bdd.sql
Vous pouvez eventuellement mettre ce script dans un crontab journalier.
Installation de rdiff-web
rdiff-web est une interface web permettant de gérer vos sauvegardes et de créer les utilisateurs. Cette interface web permet aussi de pouvoir télécharger une archive des dossiers sauvegardés.
ATTENTION: Cette interface web ne permet pas de créer des sauvegardes ou de faire des restauration.
L’installation est très simple, il suffit de lancer le script d’installation de la façon suivante:
Le script est compatibe avec Centos, Debian et Ubuntu.
wget http://www.timedicer.co.uk/programs/rdiffweb-install.sh chmod +x rdiffweb-install.sh ./rdiffweb-install.sh -g
Une fois l’installation terminée, vous pouvez vous connecter au serveur à l’adesse suivante:
http://ip-de-votre-serveur:8080
Le login et le mot de passe est donnée à la fin de l’installation de rdiff-web
rdiff-web est très simple d’utilisation, une fois connecter il vous suffit de créer un utilisateur dans l’onglet admin, de spécifier un login et un mot de passe, le dossier ou se trouve les sauvegardes.
Une fois cela fait, allez dans Preferences puis cliquez sur « Update backup locations ».
Vous verrez la liste de vos dossiers sauvegardés et vous pouvez naviguer dedans pour télécharger les fichiers manuellement ou tout le dossier en .zip ou tar.gz.
Enfin vous avez une vue « Backup status pour » voir l’état de vos sauvegardes.
Voila ce qui met fin à ce tuto sur rdiff-web.
(4 commentaires)
Passer au formulaire de commentaire
Bonjour, Comment faire cette sauvegarde pour tous les utilisateurs du serveur web comme vous l’avez evoqué dans l’introduction? est ce qu’il faut modifier le script à chaque fois qu’on créé un utilisateur? comment cela doit se passer quand on utilise whm pour les comptes cpanel?
Merci
Getting the 90 pound set is going to save you about $600 if you were to get a set of each dumbbell from 5 – 90 pounds. Plus you have the option to go to 130lbs per arm. So for those of us who do workout from home or are planning to set up a home gym it is by far one of the greatest investments you can make. It saves money and it saves space.
Bonjour,
J’ai eu la même erreur que Gallardo lors de l’installation.
Testé avec elinks, la page est bien accessible. J’ai modifié la ligne 224 du script en remplacement 1 par 0 dans le test et j’ai pu finir l’installation.
Merci pour le tuto.
Bonsoir , petite question :) , lors de l’install de rdiff-web j’obtient un erreur:Visiting rdiffweb homepage http://127.0.0.1:8080 :FAILED
Pourriez vous m’aider svp
Merci
ps:lors de l’installation de rdiff il n’y a eu aucun soucis