Sauvegardes multi-plateformes automatisées

Ce premier article va traiter du système de sauvegardes automatisée que je me suis monté pour mes besoins personnels.
Les outils de sauvegardes automatiques sont nombreux. Je me suis tourné vers BackupPC car :
– il est multi-plateformes (tous mes PC sont en double-boot Windows / Linux)
– c’est un logiciel libre
– il supporte de nombreux modes de sauvegardes
– l’interface web est plutôt bien faite je trouve

Il est bien évident que cet article ne sera qu’une introduction à BackupPC. Le nombre de possibilités offertes par BackupPC et le nombre de cas de figures possibles pour des sauvegardes sont bien trop grands pour en faire un article exhaustif.
De plus, je ne vais traiter ici que des sauvegardes sous Linux. Backuppc permet aussi de gérer les sauvegardes de postes sous Windows, ça fera peut-être l’objet d’un autre article.

Sources :
http://doc.ubuntu-fr.org/backuppc
http://backuppc.sourceforge.net/

Configuration :
– Ubuntu Linux 10.04 LTS

Installation du serveur sous Linux

Installation

Installation par la logithèque Ubuntu (rechercher « backuppc »). L’installation va vous demander de choisir certaines options. Voici celles que j’ai choisies :
– Postfix Configuration : Pas de configuration (je n’ai pas besoin d’un service de mails pour ma solution de sauvegardes)
– Quel serveur web voulez-vous configurer automatiquement? : Cochez « apache2″
– Notez quelque par le mot de passe créé pour l’utilisateur « backuppc »

L’installation se termine sans problème particulier (en tous cas chez moi :p ).

Configuration

Je vous conseille de tout de suite changer le mot de passe créé pour l’utilisateur backuppc pour mettre un mot de passe que vous retiendrez. Ceci se fait avec la commande :

sudo htpasswd /etc/backuppc/htpasswd backuppc

L’interface web de BackupPC est accessible à l’adresse : http://localhost/backuppc (Remplacer localhost par l’IP du serveur si c’est une machine différente). L’interface web permet d’accéder à la grande majorité des options de configuration disponibles.

Choisir le répertoire utilisé pour les sauvegardes

Allez, on commence par une des seules options qu’il n’est pas possible de modifier via l’interface web. Par défaut, BackupPC stocke les sauvegardes dans « /var/lib/backuppc ». Si cela vous convient, ne touchez à rien, mais dans mon cas, j’ai acheté un disque dur spécialement pour y stocker mes sauvegardes. Il est monté sur « /media/sdc1″ et je veux que mes sauvegardes soient dans « /media/sdc1/backuppc ».
– On crée le répertoire, je ne vous fait pas l’affront d’expliquer comment.
– On édite avec son éditeur de texte préféré le fichier « /etc/backuppc/config.pl ». Attention, il faut être root. On cherche la ligne « $Conf{TopDir} = ‘/var/lib/backuppc'; » et on la remplace par « $Conf{TopDir} = ‘/media/sdc1/backuppc'; »
– On copie le contenu de l’ancien répertoire de sauvegarde vers le nouveau :

sudo cp -a /var/lib/backuppc/* /media/sdc1/backuppc/

– On redémarre BackupPC :

sudo /etc/init.d/backuppc restart

Attention : le disque utilisé pour ici doit être en ext3 (ou un autre système de fichier gérant les permissions, donc pas de NTFS par exemple)

Langue de l’interface web

C’est la 2ème (et dernière pour cet article) option qu’il faut changer dans le fichier de configuration « /etc/backuppc/config.pl »
Modifier la ligne « $Conf{Language} = ‘en'; » en « $Conf{Language} = ‘fr'; »

Sauvegarde d’un répertoire local

Dans l’interface web :
– « Serveur » -> « Modifier la configuration » -> « Machine » : vérifier que la machine (host) « localhost » existe bien, avec « backuppc » comme user
– « Hôtes » -> choisir « Localhost » dans la liste déroulante
– « localhost » -> « Modifier la configuration » -> « xfer » -> « XferMethod » : choisir « tar », « TarShareName » : indiquer le chemin à sauvegarder et cliquer sur « insérer » -> Cliquer sur « Sauvegarder » (apparaît en rouge)
– « localhost » -> « localhost Accueil » -> « Démarrer la sauvegarde complète »
– « localhost » -> « Explorer les sauvegardes » : vérifiez ici que ça a fonctionné.

Sauvegarde d’un répertoire linux distant

BackupPC permet de gérer de manière assez avancée les sauvegardes de postes distants. Voici comment faire une sauvegarde très basique d’un répertoire sur un poste distant sous Linux.
Avant tout, il faut qu’openssh_server soit installé sur le poste distant car la sauvegarde se fera via ssh (encore un bon point pour backuppc =) ). Par contre, cela entraine une identification par clés entre le serveur et le poste distant. Il faut donc mettre en place ce mécanisme avant tout :
– Passer en utilisateur « backuppc » :

sudo su - backuppc

– Générer les clés publique et privée :

ssh-keygen -t rsa

– On peut vérifier que la clé publique a bien été générée :

cat ~/.ssh/id_rsa.pub

– Transférer le fichier id_rsa.pub sur le poste distant d’une manière quelconque et ajouter son contenu au fichier « /root/.ssh/authorized_keys » sur le poste distant
– Faire une première connexion depuis le serveur vers le poste distant :

ssh root@adresse.ip.du.poste.distant

Répondre « yes ». Pour que cela fonctionne, il faut bien sur toujours être l’utilisateur « backuppc » sur le serveur.

Maintenant, on peut passer à la configuration de la sauvegarde via l’interface web :
– « Serveur » -> « Modifier les machines » -> « Machines » -> ajouter adresse.ip.de.la.machine.a.sauvegarder avec « backuppc » comme user
– « Hôtes » -> choisir adresse.ip.de.la.machine.distante dans la liste déroulante
– « Modifier la configuration » -> « xfer » -> « XferMethod » : choisir « rsync », -> cliquer sur « Sauvegarder »
– Aller sur « adresse.ip.de.la.machine.distante Accueil » -> « Démarrer la sauvegarde complète »
– Aller sur « Explorer les sauvegardes » et vérifier que ça a fonctionné.

Voila, normalement tout fonctionne. Ce n’est bien sur qu’un bref aperçu des possibilités et du fonctionnement de Backuppc, mais ça permet de monter assez rapidement un système de sauvegardes qui tient la route.
Reste à voir si Backuppc me conviendra à long terme. Il y a notamment une limitation pour la sauvegarde sur les disques NTFS, ce qui m’embête assez. Je trouverai peut-être une astuce, ce qui fera peut-être un prochain article.

C’est fini pour ce premier vrai post, assez long d’ailleurs. N’hésitez pas à aller voir la doc de Backuppc sur le site de la documentation Ubuntu, elle est très bien faite.

4 réponses à to “Sauvegardes multi-plateformes automatisées”

  • yasking:

    c’est quoi les probléme qui vous rencontré lors de l’installation de backuppc

    • Jidey:

      Je crois que je n’avais pas rencontré de problème particulier. J’ai changé de système de sauvegardes depuis parce que j’ai monté un système plus léger et plus automatisé à base de rsync.

      • fmadiot:

        Bonjour jidey.
        C’est quoi plus en détail le système plus léger et plus automatisé a base de rsync ?

        j’ai essayé de me faire un outil en bash qui fait des sauvegardes de demon rsync (sous windows) ca marche mais c’est un peu l’usine a gaz.
        ce que je cherchais :
        une sauvegarde de répertoires sur des portables allumés de manière intermittente avec limitation de la bande passante et donc reprise de synchro partielle de fichier.
        le souci que j’ai est principalement que rsyncd au démarrage doit scanner les quelques 600Go de données et ca me fait ramer mon portable.

        • Jidey:

          Salut,

          Je t’ai mis un exemple de ce que j’ai fait là : http://pellelatarte.fr/dawa/scripts/exemple_rsync
          Ca ne sauvegarde qu’un dossier par contre, mais moi je sauvegarde mon home et ça va très bien (ça suit les liens et c’est récursif dans les dossiers).

          En gros, sur ton serveur ça va créer un dossier du style incomplete_back-121010-193320 dans TARGET_DIR et ça va faire un rsync incrémental par rapport au dossier « current » du dossier TARGET_DIR. (La première fois il va pas trouver current et va faire une sauvegarde complète)
          Pour être exact, current est un lien vers la dernière version du dossier que tu sauvegardes.

          Une fois que le rsync est passé, il renomme incomplete_back-121010-193320 en back-121010-193320 et fait pointer current dessus. Du coup tu gardes aussi toutes les anciennes versions (si tu as fait une sauvegarde par erreur après avoir effacé un truc tu peux le retrouver donc), et pour accéder à ta sauvegarde à jour tu as juste à aller dans current.
          Après c’est à toi d’éventuellement faire le ménage parmis les vieilles versions de ta sauvegarde, mais ça pourrait s’automatiser.

          Voilà si tu as des questions n’hésite pas.

          A+
          jidey