Backup avec Rsnapshot

Un article de Wiki SOS-ADMIN.


Cet article est basé sur le Rsnapshot HOWTO écrit par Nathan Rosenquist.

Sommaire

Introduction

Rsnapshot est un utilitaire qui permet d'effectuer des sauvegardes sur des systèmes locaux ou distants.

Prérequis

  • Perl
  • rsync
  • une authentification SSH par clef et sans passphrase (ou avec ssh-agent) pour les serveurs distants à sauvegarder

Installation

Télécharger la derniere version ici.

cd /usr/local/src/
wget http://rsnapshot.org/downloads/rsnapshot-1.2.1.tar.gz
tar xvzf rsnapshot-1.2.1.tar.gz
cd rsnapshot-1.2.1

Configurer le process d'install pour placer le fichier de configuration dans /etc

./configure --sysconfdir=/etc

Installer le logiciel

su
make install

Les éléments suivants ont été installés.

Le script perl est ici : /usr/local/bin/rsnapshot
La page de man est ici : /usr/local/man/man1/rsnapshot.1
Le fichier de config est ici : /etc/rsnapshot.conf

Configuration

Un fichier de configuration par défaut a été créer, nous allons en créer une copie.

cp  /etc/rsnapshot.conf.default /etc/rsnapshot.conf
chmod 0600 /etc/rsnapshot.conf

Avant de commencer

Deux éléments importantes :

  • Ce ne sont pas des espaces mais des tabulations entre chaques instructions
  • Tous les chemins doivent se terminer par / (slash)

Editer ce fichier.

pico /etc/rsnapshot.conf

Répertoire de sauvegarde

Le snapshot_root est le répertoire dans lequel toutes les sauvegardes seront faites, nous les stockeront dans /home/.snapshot

snapshot_root   /home/.snapshots/

Les commandes externes

Décommenter toutes les commandes externes

cmd_cp          /bin/cp
cmd_rm          /bin/rm
cmd_rsync       /usr/bin/rsync
cmd_ssh         /usr/bin/ssh
cmd_logger      /usr/bin/logger
cmd_du          /usr/bin/du

Les intervalles de sauvegardes

Un interval se configure de la manière suivante :

interval       heures  2

Cela veut dire que le système gardera 2 versions des sauvegardes de type heures, il faudra donc effectuer 2 sauvegardes journalieres (1 toutes les 12 heures) Nous souhaitons également garder 7 sauvegardes par semaine. Pour cela il suffit d'ajouter la ligne suivante:

interval       jours  7

Cette sauvegarde devra être executée 1 fois par jour.

Les données à sauvegarder

De manière générale un point de sauvegarde est défini de cette façon:

backup  /chemin/local/   nom_d_hote/

nom_d_hote sera un sous répertoire de snapshot_root. Il n'est pas util de le créer manuellement.

Un point de sauvegarde distant sera déclaré de cette manière:

backup   user@hote:/chemin/a/sauvegarder/   hote/

Les paramètres optionnels

Il est conseillé de positionner le paramètres link_dest à 1

link_dest      1

Tester la configuration

Avant de regler les crons et d'effectuer notre première sauvegarde il faut verifier le fichier de configuration:

rsnapshot configtest

Si tout va bien il vous répondra gentiment : Syntax OK. Sinon vérifier bien qu'il n'y a pas d'espaces à la place des tabulations.

Il est possible de simuler le fonctionnement de rsnaphot:

rsnapshot -t heures

Il ne reste plus qu'à regler les crons.

Execution des sauvegardes

On souhaite avoir en permanence deux sauvegardes par jour, et sept par semaine. Le crontab devra donc ressembler a ca :

0  22,10 * * /usr/local/bin/rsnapshot heures
30 23 * * * /usr/local/bin/rsnapshot jours