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]]// |