Différences
Ci-dessous, les différences entre deux révisions de la page.
Prochaine révision | Révision précédente | ||
securite:sauvegarde_incrementielle_et_automatique_de_son_home [Le 16/11/2006, 14:04] 194.199.224.105 |
— (Version actuelle) | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | DokuWiki | ||
- | |||
- | Version Hoary | ||
- | Rédigé par [[utilisateurs: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 ? | ||
- | |||
- | ===== 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 : | ||
- | |||
- | 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. | ||
- | |||
- | |||
- | ===== Le script ===== | ||
- | |||
- | 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. | ||
- | |||
- | ===== Trucs & astuces ===== | ||
- | |||
- | 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 : | ||
- | [[http://www.nongnu.org/rdiff-backup/examples.html|Rdiff-backup (en)]] |