Accueil > Logiciel, Système, Tutoriel > Rsnapshot

Rsnapshot

30/12/2015 Categories: Logiciel, Système, Tutoriel Tags: , , ,
Print Friendly

Introduction

Vous le savez maintenant, les sauvegardes sont indispensables… Sauvegardes. Nécessaires, mais facile à oublier, sauf si elles sont effectuées automatiquement.

Voici un tutorial qui décrit la procédure pour mettre en place une solution de sauvegarde automatique simple basée sur rsnapshot.

Rsnapshot est un script écrit en perl.

Il utilise Rsync (et ssh si vous le souhaitez) pour effectuer des sauvegardes à intervalle régulier.

Il est capable de réaliser des sauvegardes d’un systèmes de fichier ou bien de bases de données par l’intermédiaire de scripts.

Un des principaux avantages de rsnapshot est son extrême simplicité.

rsnapshot utilise les « hard link unix » pour :

  • Éviter de dupliquer inutilement les fichiers.
  • Faciliter la restauration.

rsnapshot crée l’illusion de plusieurs sauvegardes complètes, alors qu’il n’y a sur le système de fichier que la première et les différences éventuelles apparues entre cette dernière et les suivantes. Il s’agit d’une méthode de sauvegarde différentielle.

Dans ce tuto nous allons vous expliquer comment mettre en place la sauvegarde différentielle sécurisée d’un répertoire d’une machine distante.

Prérequis: Configuration de SSH et des clefs

Vous devez pouvoir vous connecter aux machines auxquelles vous allez vous connecter sans mot de passe:

Tout d’abord, il faut configurer ssh et importer la clef du serveur distant.

Je vais procéder comme dans ce tuto

Testez:

root@nas:~# ssh -p 10122 vanille
Linux vanille.zehome.org 2.6.32-5-amd64 #1 SMP Tue Jun 14 09:42:28 UTC 2011 x86_64

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Thu Aug 11 08:07:48 2011 from nas.zehome.org
root@vanille:~#

Installation de rsnapshot

root@nas:~# apt-get install rsnapshot

Qui vous installera par la même occasion Rsync

Sauvegarde du fichier de configuration:

root@nas:~# cp /etc/rsnapshot.conf /etc/rsnapshot.conf.sos

Configuration

root@nas:~# nano /etc/rsnapshot.conf

Attention les espaces dans le fichier de configuration sont des tabulations…

Emplacement des sauvegardes

Par défaut les sauvegardes sont placées dans /var/cache/rsnapshot/ Si ce n’est pas ce que vous souhaitez, changer la destination:

###########################
# SNAPSHOT ROOT DIRECTORY #
###########################

# All snapshots will be stored under this root directory.
#
#snapshot_root  /var/cache/rsnapshot/
snapshot_root   /mnt/sdd1/rsnapshot/

Rotations

Nous dé-commentons les sauvegardes mensuelles. Les numéros représentent la fréquence des sauvegardes, ce qui nous donne:

interval        hourly  6
interval        daily   7
interval        weekly  4
interval        monthly 3
  • 6 sauvegardes horaires.
  • 7 sauvegardes quotidiennes.
  • 4 sauvegardes hebdomadaires.
  • 3 sauvegardes mensuelles.

Activer SSH

...
#################################
# EXTERNAL PROGRAM DEPENDENCIES #
#################################
...
# Uncomment this to enable remote ssh backups over rsync.
#
cmd_ssh /usr/bin/ssh
...
############################################
#              GLOBAL OPTIONS              #
# All are optional, with sensible defaults #
############################################
...
# ssh has no args passed by default, but you can specify some here.
#
ssh_args        -p 10122 -o BatchMode=yes
...

Définition des sauvegardes

Nous commentons les sauvegardes par défaut:

...
###############################
### BACKUP POINTS / SCRIPTS ###
###############################

# LOCALHOST
#backup /home/          localhost/
#backup /etc/           localhost/
#backup /usr/local/     localhost/
...

Et nous créons nos sauvegardes personnalisées…

...
backup  root@vanille:/etc/      vanille.zehome.org/
...

Vérification de la configuration

Il existe une option de vérification du fichier de configuration:

root@nas:~# rsnapshot configtest
Syntax OK

Lancez une sauvegarde en mode test pour une dernière vérification:

root@nas:~# rsnapshot -t hourly
echo 5535 > /var/run/rsnapshot.pid 
mkdir -m 0755 -p /mnt/sdd1/rsnapshot/hourly.0/ 
/usr/bin/rsync -a --delete --numeric-ids --relative --delete-excluded \
    --rsh="/usr/bin/ssh -p 10122 -o BatchMode=yes" root@vanille:/etc \
    /mnt/sdd1/rsnapshot/hourly.0/vanille.zehome.org/ 
touch /mnt/sdd1/rsnapshot/hourly.0/ 

Lancez la première sauvegarde:

root@nas:~# rsnapshot hourly

Recommencez plusieurs fois la sauvegarde journalière, vous aurez alors bien vos 6 sauvegardes horaires:

root@nas:~# vdir /mnt/sdd1/rsnapshot
total 0
drwxr-xr-x 1 root root 36 11 août  09:12 hourly.0
drwxr-xr-x 1 root root 36 11 août  09:12 hourly.1
drwxr-xr-x 1 root root 36 11 août  09:12 hourly.2
drwxr-xr-x 1 root root 36 11 août  09:12 hourly.3
drwxr-xr-x 1 root root 36 11 août  09:12 hourly.4
drwxr-xr-x 1 root root 36 11 août  09:12 hourly.5

Par défaut le « logging » se fait dans /var/log/syslog:

root@nas:~# cat /var/log/syslog | grep rsnapshot
Aug 11 10:02:11 nas rsnapshot[5542]: /usr/bin/rsnapshot hourly: completed successfully
Aug 11 10:02:14 nas rsnapshot[5552]: /usr/bin/rsnapshot hourly: completed successfully
Aug 11 10:02:16 nas rsnapshot[5561]: /usr/bin/rsnapshot hourly: completed successfully
Aug 11 10:02:18 nas rsnapshot[5570]: /usr/bin/rsnapshot hourly: completed successfully
Aug 11 10:02:21 nas rsnapshot[5579]: /usr/bin/rsnapshot hourly: completed successfully
Aug 11 10:02:23 nas rsnapshot[5588]: /usr/bin/rsnapshot hourly: completed successfully
Aug 11 10:02:25 nas rsnapshot[5598]: /usr/bin/rsnapshot hourly: completed successfully
root@nas:~# rsnapshot du
15M     /mnt/sdd1/rsnapshot/hourly.0/
0       /mnt/sdd1/rsnapshot/hourly.1/
0       /mnt/sdd1/rsnapshot/hourly.2/
0       /mnt/sdd1/rsnapshot/hourly.3/
0       /mnt/sdd1/rsnapshot/hourly.4/
0       /mnt/sdd1/rsnapshot/hourly.5/
15M     total

Tâche Cron

Activez (en dé-commentant les lignes) les sauvegardes dans votre cron:

# This is a sample cron file for rsnapshot.
# The values used correspond to the examples in /etc/rsnapshot.conf.
# There you can also set the backup points and many other things.
#
# To activate this cron file you have to uncomment the lines below.
# Feel free to adapt it to your needs.

0 */4           * * *           root    /usr/bin/rsnapshot hourly
30 3    * * *           root    /usr/bin/rsnapshot daily
0  3    * * 1           root    /usr/bin/rsnapshot weekly
30 2    1 * *           root    /usr/bin/rsnapshot monthly

Modifiez les horaires à votre convenance…

Sauvegarde d’un système complet

Si vous prévoyez de sauvegarder une machine entière, mettez en place un fichier d’exclusion afin d’éviter les fichiers inutiles:

root@nas:~# nano /etc/rsnapshot.conf
...
############################################
#              GLOBAL OPTIONS              #
# All are optional, with sensible defaults #
############################################
...
exclude_file    /mnt/sdd1/rsnapshot/exclude_file.txt
...
###############################
### BACKUP POINTS / SCRIPTS ###
###############################
...
backup  root@vanille:/  vanille.zehome.org/
nano /mnt/sdd1/rsnapshot/exclude_file.txt

A adapter à vos besoins évidemment… Voir le man de Rsync pour la syntaxe.

### Répertoires temporaires
### tmp ### 
+ tmp/ 
- **/tmp/** 
+ /tmpfs/ 
- /tmpfs/** 
### Temporaires ### 
+ /proc/ 
- /proc/** 
+ /mnt/ 
- /mnt/** 
+ /cdrom/ 
- /cdrom/** 
+ /sys/
- /sys/**
### cache ### 
# mozilla 
+ Cache/ 
- **/Cache/** 
# ccache.samba.org 
+ ccache/ 
- **/ccache/** 
+ .ccache/ 
- **/.ccache/** 
# others 
+ cache/ 
- **/cache/** 
+ xover-cache/ 
- **/xover-cache/** 
### obj ### 
# kernel build 
- usr/src/**.o 
# special library .o (may be RH specific?) 
+ usr/*/lib/**.o 
+ usr/lib/**.o 
# all others 
- *.o 
### backup ### 
- *~
+ /var/backups/
### rsnapshot ###
+ /var/snapshots/
- /var/snapshots/**

La première sauvegarde va prendre un long moment…

liens externes

Les commentaires sont fermés.