16/05/2009

Mise en place d’un système de backup avec Rsnapshot

Schéma de la solution à déployer

Schéma de la solution à déployer

Qui ne s’est jamais retrouvé dans la merde après ne pas avoir sauvegardé ses données? Je vous propose aujourd’hui un petit tutoriel qui va vous permettre d’effectuer des backups réguliers sous GNU/Linux.

Avec rsnapshot il est possible de faire des backups locaux (une copie régulière d’un disque sur un autre) ou des backups distants (via une connexion SSH), soit les deux en même temps !

Principe de Rsnapshot

Basé sur SSH et rsync, rsnapshot est en fait une boite à outil. Pour ceux qui ne connaissent pas rsync, c’est un outil de synchronisation de fichiers libre et puissant qui ne copie que les différences entre deux backups, et non l’entièreté du système, pour économiser de la bande passante.

Rsnapshot est un logiciel qui tourne sur le serveur de backup. La machine qui se voit ainsi sauvegardée est totalement passive, il faut juste qu’elle ait un serveur SSH activé.

Quelques scripts rsync/ssh pourraient évidemment faire la même chose que rsnapshot, mais rsnapshot est fiable et sa configuration triviale, alors pourquoi s’en passer?

Installation

Première étape : Installez rsnapshot sur le serveur où seront stockés les backups. Je ne décris pas cette installation qui est triviale et propre à chaque distribution.

Deuxième étape : Permettez à ce serveur de se connecter automatiquement en SSH sur la machine à sauvegarder. Je vous renvoie vers l’article SSH sans mot de passe qui explique comment générer une paire de clés publique/privée afin de chiffrer la connexion SSH avec le protocole RSA.

Troisième étape (facultative) : Modifiez votre fichier /etc/hosts, qui permet d’utiliser des short-names dans la configuration de rsnapshot (c’est plus propre et plus joli).

Quatrième étape : Configurez rsnapshot dans /etc/rsnapshot.conf. Vous pouvez vous inspirer de cet exemple.

Lancer le backup

Vous êtes maintenant prêt pour votre premier backup! Lancez la commande suivante:

/usr/bin/rsnapshot -cv /etc/rsnapshot.conf daily

Si tout se passe bien, vous n’avez plus qu’à ajouter cette commande à votre crontab afin d’automatiser la procédure.

Problèmes connus

  • La toute première connection ssh du serveur de backup vers la machine à backuper doit être établi manuellement.
  • Le fichier rsnapshot.conf doit être réécrit en séparant les valeurs avec des tabulations. Si vous ne remplacez pas les espaces par des tabulations, rsnapshot ne fonctionnera pas.

Liens de référence

  1. ronaute
    | #1

    Merci pour cet article mais c’est dommage le lien vers l’exemple de configuration de fonctionne pas.
    Peux-tu (si t’as le temps) expliquer brievement ceci :
    “Troisième étape (facultative) : Modifiez votre fichier /etc/hosts, qui permet d’utiliser des short-names dans la configuration de rsnapshot (c’est plus propre et plus joli).”
    Bonne journée

  2. barul
    | #2

    Je sais pas si la réponse sera lue un jour, mais je viens de voir la question (Quoi, comment ça, ça date de plus d’un an?).
    Dans le /etc/hosts tu peux spécifier des noms à la place des IPs, ce qui est beaucoup plus pratique et plus rapide. Un exemple:
    127.0.0.1 localhost <- Ça permet de savoir directement que localhost est 127.0.0.1 sans rien questionner. Ça vaut pour tous les noms/IPs.

  1. | #1
  2. | #2