«

»

Mai 04 2014

[Tuto]: Faire vos sauvegardes avec rdiff-backup et rdiff-web

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.

rdiff-web 1

rdiff-web 1

Enfin vous avez une vue « Backup status pour » voir l’état de vos sauvegardes.

rdiff-web 2

rdiff-web 2

Voila ce qui met fin à ce tuto sur rdiff-web.

(3 commentaires)

  1. http://www.hannavoxland.com/

    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.

  2. Laayem

    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.

  3. Gallardo

    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

Laisser un commentaire

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

Lire les articles précédents :
OpenVZ Logo
[Tuto] Virtualisation: Ajouter un serveur OpenVZ dans OpenVZ Web Panel

Bonjour à tous, dans ce tuto nous allons voir comment rajouter un second serveur OpenVZ dans OpenVZ Web Panel.

Fermer