Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
|
securite:sauvegarde_incrementielle_et_automatique_de_son_home [Le 03/01/2007, 12:30] ostaquet Mise en page, tag et ajustements... |
— (Version actuelle) | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| - | {{tag>hoary breezy dapper edgy securite backup}} | ||
| - | ---- | ||
| - | |||
| - | ====== rdiff-backup : Solution de sauvegarde incrémentielle ====== | ||
| - | |||
| - | 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. | ||
| - | |||
| - | ===== Installation ===== | ||
| - | |||
| - | Pour installer **rdiff-backup**, il vous suffit de lancer la commande suivante : | ||
| - | <code> | ||
| - | sudo apt-get install rdiff-backup | ||
| - | </code> | ||
| - | |||
| - | ===== Utilisation ===== | ||
| - | |||
| - | ==== 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'' au préalable. | ||
| - | |||
| - | ==== 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 les sauvegardes ===== | ||
| - | 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 faire manuellement chaque jour ? | ||
| - | |||
| - | ==== Journaliser les tâches ==== | ||
| - | |||
| - | 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]], 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 | ||
| - | |||
| - | Pour journaliser notre tâche, on indique à [[:cron]] d'exécuter le script ''~/sauve_mon_dossier.sh'' chaque jour à 20h00. | ||
| - | |||
| - | On met donc la ligne suivante dans notre crontab : | ||
| - | 00 20 * * * ~/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.** Pour plus d'informetions sur le formalisme du ''crontab'', je vous invite à consulter [[:cron|cette page]]. | ||
| - | |||
| - | |||
| - | ==== Le script ==== | ||
| - | |||
| - | Ensuite, il reste à faire le script pour lancer les sauvegardes. | ||
| - | On édite donc le fichier ''~/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 ~/sauv_mon_dossier.sh | ||
| - | |||
| - | Voilà c'est fini, on peut simplement vérifier que le script fonctionne bien en le lançant : | ||
| - | ~/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. | ||
| - | |||
| - | ===== Trucs & astuces ====== | ||
| - | |||
| - | Pour vérifier que la tâche est bien lancée vous pouvez vérifier dans votre ''répertoire 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. | ||
| - | |||
| - | ===== Références ===== | ||
| - | Un bon site qui m'a permis de construire ce tutoriel : | ||
| - | [[http://www.nongnu.org/rdiff-backup/examples.html|Rdiff-backup (en)]] | ||
| - | |||
| - | ---- | ||
| - | |||
| - | //Contributeurs : [[utilisateurs:Herbie]], [[utilisateurs:ostaquet]] // | ||
| - | |||
| - | //Basé sur [[http://debuntu.tuxfamily.org]]// | ||