Selon les tags présents sur cette page, celle-ci n'a pas été vérifiée pour une des versions LTS supportées d'Ubuntu.
Apportez votre aide…

Ceci est une ancienne révision du document !


DokuWiki

Version Hoary

Rédigé par Herbie
Article provenant de http://debuntu.tuxfamily.org

Le besoin

Faire des sauvegardes différentielles journalières de son /home et supprimer les sauvegardes vieilles d'une semaine par exemple. Ceci est réalisé via le logiciel rdiff-backup. J'explique également comment tout automatiser.

Faire la sauvegarde

Voici la commande qui permet de faire une sauvegarde :

rdiff-backup --exclude /home/mon_login/.aMule /home/mon_login /rep_save

Ici on sauvegarde tout le /home/mon_login sauf le repertoire ./aMule dans le dossier de destination /rep_save

Si /rep_save n'est pas vide, un message nous indique qu'il faut utiliser l'option –force et dans ce cas, son contenu est supprimé. Donc attention, dans ce cas, à sauvegarder le contenu de /rep_save avant.

Supprimer des sauvegardes

Pour supprimer les différences accumulées au fur et à mesure que l'on a ajouté des sauvegardes :

rdiff-backup --remove-older-than 1W --force /le_repertoire_de_sauvegarde

ici on enlève toutes les modifications enregistrées vieilles de plus d'une semaine. On peut mettre D(ay),W(eek), M(onth) et Y(ear).

S'il il y a plusieurs sauvegardes à supprimer, la commande échoue. C'est pourquoi il faut rajouter le paramètre –force pour ne pas prendre cette erreur en compte et que rdiff-backup effectue bien ce qu'on lui demande.

Tester un backup

Pour vérifier que nos sauvegardes fonctionnent bien, on peut restaurer une sauvegarde :

rdiff-backup -r now /repertoire_de_sauvegarde /repertoire_de_restauration

L'option -r now permet de remettre la version de la sauvegarde la plus récente. On peut remonter dans les sauvegardes, par exemple remettre le repertoire d'il y a 3 jours avec l'option -r 3D.

Automatiser l'ensemble

Voici la partie vraiment intéressante : comment faire pour que nos commandes précédentes se lancent de façon automatique, de façon à ce que l'on ait pas à les taper chaque jour ?

Tout d'abord quelques mots sur les logiciels journalisation de tâches : Actuellement on dispose de trois outils sous linux pour cela :

  • at qui permet de définir des tâches à réaliser à un instant précis et si la machine est éteinte à ce moment là, la tâche sera réalisée au prochain démarrage. Utilisable par tout le monde.
  • cron peut definir des tâches périodiques mais c'est un daemon donc si la machine est éteinte, la commande ne se lancera pas du tout. Utilisable par tout le monde.
  • anacron lance des tâches de facon périodique et si l ordinateur n'était pas allumé au moment voulu, la tâche s'exécutera au prochain démarrage. Utilisable uniquement par root.

Dans notre cas, nous allons utiliser cron :

Les commandes suivantes sont à exécuter en root.

Pour installer cron :

apt-get install cron

cron utilise la crontab qui permet d'indiquer les tâches que l'on veut réaliser et à quelle fréquence.

Pour éditer la crontab, il suffit de faire :

crontab -e

Par défaut c'est vi qui est utilisé par crontab, j'indique plus bas comment utiliser nano à la place.

Pour journaliser notre tâche, on indique à cron d'exécuter le script /root/sauve_mon_dossier.sh chaque jour à 20h00. On met donc la ligne suivante dans notre crontab :

00    20    *    *     *    /root/sauve_mon_dossier.sh

Celle-ci signifie "tous les jours à 20h00 lance le script /root/sauve_mon_dossier.sh". C'est bien les minutes d'abord et les heures ensuite, il n'y a pas d'erreur.

Ensuite il reste à faire le script pour lancer les sauvegardes. On édite donc le fichier /root/sauv_mon_dossier.sh avec son éditeur favori et on y insère les lignes suivantes :

#!/bin/sh
nice -n 19 rdiff-backup --exclude /home/login/.aMule /home/login /mnt/save && nice -n 19 rdiff-backup --remove-older-than 1W --force /mnt/save

Le nice -n 19 signifie que lorsqu'on lance les commandes, elles s'exécutent avec la priorité la plus petite par rapport aux autres processus, ceci afin d'éviter que l'ordinateur ne se mette à ramer tous les jours à 20h00.

On sauvegarde le script et on n'oublie pas de mettre les droits d'éxecution sur le fichier :

chmod +x /root/sauv_mon_dossier.sh

Voilà c'est fini, on peut simplement vérifier que le script fonctionne bien en le lançant :

/root/sauve_mon_dossier.sh

Normalement rdiff-backup se lance, fait sa sauvegarde et vous informe ensuite qu'il a ou non supprimé les sauvegardes plus vieilles d'un jour.

Pour vérifier que la tâche est bien lancée vous pouvez vérifier dans votre repertoire de sauvegarde/rdiff-backup si vous avez bien une ligne du genre :

session_statistics.2005-03-02T19:54:58+05:30.data

Vous voyez alors l'heure et la date de la derniere sauvegarde.

That's it, dernière chose pour changer d'éditeur de texte par défaut :

export EDITOR=vi

ou:

export EDITOR=emacs

par exemple. dans le /root/.bashrc, c 'est radical :)

Voilà, bonnes sauvegardes et n'hésitez pas à remonter vos retours d'experiences/améliorations à debuntu at gmail dot com

Références

Un bon site qui m'a permis de construire ce tutoriel : Rdiff-backup (en)

  • securite/sauvegarde_incrementielle_et_automatique_de_son_home.1163682283.txt.gz
  • Dernière modification: Le 18/04/2011, 14:46
  • (modification externe)