Facebook de Neoflow.fr Rejoignez-nous sur Facebook ! GooglePlus de Neoflow.fr Ajoutez-nous à vos cercles ! Twitter de Neoflow.fr Suivez-nous sur Twitter ! Youtube de Neoflow.fr Abonnez-vous à notre chaine ! Neoflow.fr



Publié par Flo le 16/07/2012 (1221 lus)

Sauvegarde et restauration avec Rdiff-Backup

Rdiff-backup est un script écrit en Python qui permet de faire des sauvegardes d'un répertoire source vers un répertoire de destination. Il permet la sauvegarde incrémentielle c'est à dire qu'à chaque nouvelle sauvegarde, les fichiers créés ou modifiés sont sauvegardés, peu importe si la sauvegarde précédente fût une sauvegarde complète, différentielle ou incrémentielle.

1. Installer le paquet rdiff-backup :

Dans un premier temps, mettez à jour la liste de vos paquets et installez le paquet, faites cela grâce aux commandes suivantes :

apt-get update
apt-get install rdiff-backup

 

2. Visualisez la documentation :

Pour en savoir plus sur l'utilisation, vous pouvez visualisez la documentation à l'aide de la commande :

man rdiff-backup

 

3. Sauvegarder un répertoire source vers un répertoire de destination :

Pour commencer, nous allons faire une sauvegarde basique c'est à dire que l'on va indiquer un répertoire source et indiquer vers qu'elle destination il doit être sauvegardé.

Par exemple, nous allons sauvegarder le répertoire "/home/neoflow/tuto/" vers "/home/neoflow/sauvegarde/". Pour se faite il faut utiliser la commande suivante :

rdiff-backup /home/neoflow/tuto/ /home/neoflow/sauvegarde/

Dès que vous allez exécuter cette commande, la sauvegarde va s'effectuer.
 

4. Sauvegarder des répertoires sources vers un répertoire de destination :

Pour se faire, on va utiliser un fichier qui contiendra le chemin vers chaque répertoire source à sauvegarder.

Par exemple, nous allons sauvegarder "/home/neoflow/tuto/" et "/home/neoflow/docs/" vers le répertoire de sauvegarde "/home/neoflow/sauvegarde/". Tout d'abord on crée un fichier texte et on inscrit le chemin des répertoires sources à sauvegarder :

nano dir-source.txt

Dans ce fichier on saisit :

/home/neoflow/tuto/
/home/neoflow/docs/

Puis, bien sur, on saisit la commande qui va permettre d'exécuter la sauvegarde :

rdiff-backup --include-globbing-filelist dir-source.txt --exclude '**' / /home/neoflow/sauvegarde/

La commande est légèrement complexe mais je trouve que le fait d'utiliser un fichier pour lister les répertoires à sauvegarder rend la modification plus simple et plus claire. Il suffit d'ajouter le chemin du répertoire dans le fichier, la commande quant à elle ne change pas.

Le "--exclude '**'" indique qu'on exclu tout le reste de la sauvegarde et donc qu'on sauvegarde uniquement les répertoires listés dans le fichier.
 

5. Sauvegarde sur une machine distante via SSH :

Il est possible d'effectuer une sauvegarde vers une machine distante, ce qui permet d'externaliser les données et, donc, d'augmenter la sécurité en ce qui concerne la conservation des données. De plus, le fait que le transfert des données soit réalisé grâce au protocole SSH sécurise la transmission des données.

Pour pouvoir faire un transfert entre les deux machines, elles doivent avoir toutes les deux un serveur SSH d'installé (vous pouvez l'installer grâce à la commande : apt-get install ssh) et le paquet rdiff-backup sinon ca ne fonctionnera pas. Ensuite, il suffira d'indiquer l'hôte de destination, l'utilisateur à utiliser et le répertoire de destination à la suite de la commande rdiff-backup et de la source.

rdiff-backup /source utilisateur@ip_machine_destination::répertoire_de_sauvegarde

Par exemple, si on sauvegarde le répertoire "/home/neoflow/" sur la machine qui a pour IP 192.168.1.102 dans le répertoire "/sauvegarde/" on saisit cette commande :

rdiff-backup /home/neoflow/ root@192.168.1.102::/sauvegarde/

 

6. La notion de "exclude" et "include" :

En utilisant "--exclude" et "--include" on peut exclure ou inclure des fichiers/dossiers d'une sauvegarde. Il suffit de préciser ce que l'on veut inclure ou exclure avant d'indiquer la destination.

Il existe une multitude d'options pour ces deux paramètres, vous pouvez obtenir plus de détails dans la documentation de rdiff-backup.
 

7. La notion de "max-file-size" et "min-file-size" :

Grâce à ce paramètre vous pouvez exclure les fichiers qui dépasse la taille maximale (max-file-size) que vous indiquez ou qui ne dépasse pas la taille minimale d'un fichier pour qu'il soit sauvegarder (min-file-size). Vous devez indiquer cette taille en octets.
 

8. Supprimer des sauvegardes avec "remove-older-than" :

Rdiff-backup inclu un paramètre qui permet de supprimer les sauvegardes dans le dossier de destination qui sont plus vieilles que "n"...


option rdiff

...où "n" est un entier. De plus il est possible, de supprimer les sauvegardes plus vieilles de "7 jours, 10 heures et 15 minutes" en indiquant "7D10H15m".

La commande que l'on devra utiliser sera la suivante :

rdiff-backup --remove-older-than 7D10H15m /home/neoflow/sauvegardes/

Vous pouvez également indiquer la directive "--force" si il y a plusieurs sauvegardes à effacer sinon l'application vous retournera une erreur.
 

9. Listing sur les sauvegardes effectuées :

Vous pouvez lister le nombre de sauvegardes effectuées pour un de vos répertoire de sauvegarde et la date de la dernière incrémentation en saisissant la commande suivante :

rdiff-backup -l /répertoire_de_la_sauvegarde/

Pour avoir plus de précision sur les différentes incrémentations de vos sauvegardes, vous pouvez utiliser la commande suivante :

rdiff-backup --list-increment-size /répertoire_de_la_sauvegarde/

Ainsi, vous allez avoir l'heure de l'incrémentation, sa taille et la taille totale de la sauvegarde.


 

10) Statistiques sur les sauvegardes effectuées :

rdiff-backup-statistics /répertoire_de_la_sauvegarde/ |more

Les statistiques nous donnes un paquet d'informations, par exemple, voici les statistiques pour le répertoire de sauvegarde "/home/neoflow/sauvegarde/" :
statistics rdiff backyp

 

11. Restaurer une sauvegarde :

Bien sur, il est possible de restaurer les sauvegardes que l'on effectue sinon ce n'aurait pas grand intérêt si on ne pourrait pas automatiser la restauration et devoir tout restaurer manuellement.

Pour restaurer une sauvegarde à son état d'il y a 1 jour, 1 mois, 1 heure,... cela dépend de ce que permettent vos sauvegardes et de ce que vous souhaitez. Pour indiquer à combien de temps en arrière faut-il revenir, vous pouvez utiliser le tableau ci-dessus, ca fonctionne sur le même principe. Si vous souhaitez restaurer la sauvegarde la plus récente indiquez le paramètre "now".

La commande devra être sous cette forme (exemple avec 15 minutes) :

rdiff-backup -r 15m /répertoire_de_la_sauvegarde/ /répertoire_de_la_restauration/

 

12. Création d'un script :

Plutôt que d'avoir à saisir les commandes de sauvegarde à chaque fois que l'on veut effectuer la sauvegarde, nous allons créer un script Shell qui permet d'exécuter les commandes que l'on souhaite et il suffira de lancer ce script pour que la sauvegarde s'effectue.

- On crée le script, que l'on appelle "sauvegarde.sh" :

nano /sauvegarde.sh

Vous devez indiquer ceci au début du script, sur la première ligne :

#!/bin/sh

A la suite de ça, on peut ajouter les commandes que l'on souhaite exécuter, par exemple :

rdiff-backup /home/neoflow/ root@192.168.1.102::/sauvegardes/

N'oubliez pas d'indiquer dans votre script de supprimer les sauvegardes datant de plus de 5 jours par exemple afin d'éviter d'encombrer votre espace de stockage trop rapidement. Sinon, vous allez avoir des surprises.

Pour que le script puisse être exécuter on lui attribue des droits d'exécution pour tout le monde en saisissant cette commande :

chmod +x sauvegarde.sh

Si vous souhaitez essayer votre script vous pouvez l'exécuter grâce à la commande suivante :

./sauvegarde.sh

 

13. Automatiser la sauvegarde :

Il est vraiment intéressant d'automatiser les sauvegardes parce que si on doit s'amuser à exécuter manuellement les sauvegardes ça peut vite devenir ennuyeux. De plus ce n'est pas très pratique surtout qu'en général on exécute les sauvegardes pendant les heures creuses, donc dans la soirée ou dans la nuit et le week-end.

Pour se faire, on va planifier l'exécution d'un script en créant une tâche cron grâce au fichier crontab qui permet l'exécution de commande à un moment précis.

Pour éditer ce fichier, saisissez la commande suivante :

crontab -e

Ensuite précisez quel éditeur de texte vous souhaitez utiliser pour modifier le fichier /etc/crontab :
crontab -e

Nous devons maintenant indiquer la commande que nous souhaitons exécuter et à quel moment elle doit s'exécuter. Voici une ligne type pour l'ajout dans le crontab :

* * * * * nom_utilisateur commande_a_exécuter

Les 5 astérisques correspondent, dans l'ordre, à ceci :

- minute,
- heure,
- jour du mois,
- mois,
- jour de la semaine.

Reprenons notre script de sauvegarde se trouvant à la racine et qui s'appelle "sauvegarde.sh" et que nous souhaitons qu'il s'exécute tous les jours à 23h30, voici ce que donnera la commande :

30 23 * * * root /sauvegarde.sh


/etc/crontab

 

14. Tester un serveur :

Vous pouvez tester si un serveur distant est prêt pour être utilisé avec rdiff-backup en indiquant son adresse IP et le répertoire de destination des sauvegardes, en utilisant la commande suivante :

rdiff-backup --test-server ip_serveur::répertoire_destination

test serveur rdiff backup


Navigation

Article précédent Installation de Webmin Mise en place d'un cache de paquets pour votre LAN Article suivant

Commentaire(s)
Pour obtenir de l'assistance technique, des conseils ou pour échanger sur le sujet, inscrivez-vous gratuitement sur notre site puis créez un nouveau sujet dans le forum. Nous préférons utiliser le forum afin de mieux organiser les discussions. Utilisez les commentaires uniquement pour ajouter un complément d'information au tutoriel ou pour remercier l'auteur du tutoriel. Merci de votre compréhension.
 

Les commentaires appartiennent à leurs auteurs. Nous ne sommes pas responsables de leur contenu.