Table des matières
, , ,

Sauvegardes

Cette page décrit la mise en place d'un serveur rsync.

Objectifs

Solutions

Rsync semble l'utilitaire adapté, en effet il est simple, léger, fonctionne en ligne de commande et dispose d'un portage sous windows. De plus, rsync est très flexible. Nous avons notamment plusieurs choix pour le protocole de transfert :

  1. rsync
  2. ssh

Protocole rsync :

Protocole SSH :

Dans mon cas, rsync est suffisant en terme de sécurité puisqu'il s'agit d'un réseau local. De plus je trouve cette solution plus propre. Pour plus d'informations sur la configuration de ssh, voir SSH.

Détails de la solution

valeur droits
utilisateur root r w X
groupe root - - -
autre - - -

* Un démon tourne sur le serveur

Installation

rsync client et serveur nécessite le paquet :

Sauvegarde locale

Voici un exemple d'utilisation de rsync pour une sauvegarde locale.

Commande simple

La commande de base de rsync est la suivante :

rsync [OPTION] SOURCE DESTINATION

Les options utiles sont :

Exemple :

rsync -av --delete --numeric-ids --files-from=list_file --exclude-from=exclude_file SOURCE DEST

Script local

Ce paragraphe décrit comment automatiser la tâche :

Créer un répertoire pour y placer les fichiers, par exemple /etc/rsync, et créer les fichiers suivants :

#!/bin/sh
config_dir=/etc/rsync
rsync -avr --delete --numeric-ids --files-from=$config_dir/list --exclude-from=$config_dir/exclude / /sauvegardes/bender

Pour synchroniser, il suffit de lancer /etc/rsync/sauve

Exemple de liste des répertoires

dirs :

/etc
/var/lib/samba
/home

Exemple de liste des exclusions

exclude :

/home/matthieu/freevo2

Attention, ajouter un exclusion exclue le répertoire ou le fichier du traitement, il ne supprime pas les données précédement archivées.

Configuration du serveur

La mise en place d'un serveur permet d'effectuer une sauvegarde via le protocole rsync.

Paramètres globaux

Le fichier /etc/default/rsync contient les paramètres globaux. Par défaut aucun démon n'est démarré.

Afin de lancer le serveur rsync au démarrage, il faut modifier le paramètre suivant :

RSYNC_ENABLE=true

Configuration de rsyncd

Il faut ensuite définir la configuration du serveur rsyncd grâce au fichier /etc/rsyncd.conf.

Paramètres globaux

La permière partie du fichier contient les paramètres globaux :

# GLOBAL OPTIONS

#motd file=/etc/motd
log file=/var/log/rsyncd
# for pid file, do not use /var/run/rsync.pid if
# you are going to run rsync out of the init.d script.
pid file=/var/run/rsyncd.pid
#syslog facility=daemon
#socket options=

lock file = /var/lock/rsyncd
uid=root
gid=root
hosts allow = 192.168.2.0/24 192.168.1.0/24 127.0.0.1
secrets file = /etc/rsyncd.secrets
use chroot = yes
read only=no

Définition des modules

La deuxième partie définie les modules. Chaque module est une unité de sauvegarde.

# MODULE OPTIONS

[bender]
        path = /sauvegardes/bender
        comment = Sauvegarde de Bender
        auth users = bender

[fry]
        path = /sauvegardes/fry
        comment = Sauvegarde de Fry
        auth users = fry

[leela]
        path = /sauvegardes/leela
        comment = Sauvegarde de Leela
        auth users = leela

[nibbler]
        path = /sauvegardes/nibbler
        comment = Sauvegarde de Nibbler
        auth users = nibbler

[ftp]
        comment = FTP data
        path = /ftp
        uid = ftp
        gid = ftp
        read only = yes
        auth users = ftp

La définition d'un module commence par son nom entre crochets, et contient les options suivantes :

Exemple de configuration

/etc/rsyncd.conf

# GLOBAL OPTIONS

#motd file=/etc/motd
log file=/var/log/rsyncd
# for pid file, do not use /var/run/rsync.pid if
# you are going to run rsync out of the init.d script.
pid file=/var/run/rsyncd.pid
#syslog facility=daemon
#socket options=

lock file = /var/lock/rsyncd
uid=root
gid=root
hosts allow = 192.168.2.0/24 192.168.1.0/24 127.0.0.1
secrets file = /etc/rsyncd.secrets
use chroot = yes
read only=no

# MODULE OPTIONS

[bender]
        path = /sauvegardes/bender
        comment = Sauvegarde de Bender
        auth users = bender

[fry]
        path = /sauvegardes/fry
        comment = Sauvegarde de Fry
        auth users = fry

[leela]
        path = /sauvegardes/leela
        comment = Sauvegarde de Leela
        auth users = leela

[nibbler]
        path = /sauvegardes/nibbler
        comment = Sauvegarde de Nibbler
        auth users = nibbler

[ftp]
        comment = FTP data
        path = /ftp
        uid = ftp
        gid = ftp
        read only = yes
        auth users = ftp

/etc/rsyncd.secrets

bender:***
fry:***
leela:***
nibbler:***
ftp:***

Configuration du client distant

Ligne de commande

L'utilisation de rsync est globalement la même sur le poste client que lors d'une sauvegarde locale.
Les différences sont les suivantes :

Exemple :

rsync -avr --delete --numeric-ids /etc matthieu@bender::pc/backup1

Script distant Linux

Voici l'adaptation du script de sauvegarde pour un client distant.

Créer un répertoire pour y placer les fichiers, par exemple /etc/rsync, et créer les fichiers suivants :

#!/bin/sh
config_dir=/etc/rsync
rsync -avr --delete --numeric-ids --password-file=$config_dir/password --files-from=$config_dir/list --exclude-from=$config_dir/exclude / leela@bender::leela

Pour synchroniser, il suffit de lancer /etc/rsync/sauve

Script distant Windows

Il existe plusieurs clients rsync pour Windows. Il est donc également possible de sauvegarder des ordinateurs sous Windows.

Un des logiciels les plus simple est cwRsync qui fournit la commande “rsync” en ligne de commande Windows.

Une fois cwRsync installé, son utilisation est identique à Linux. Voici l'adaptation du script de sauvegarde comme exemple :

Créer un répertoire pour y placer les fichiers, par exemple D:\scripts\rsync.fry, et créer les fichiers suivants :

SET rsync_conf=/cygdrive/d/scripts/rsync.fry
"C:\Program Files\cwRsync\bin\rsync.exe" -avr --numeric-ids --delete --files-from=%rsync_conf%/list --exclude-from=%rsync_conf%/exclude --password-file=%rsync_conf%/password /cygdrive/ fry@bender::fry 
@pause

Pour synchroniser, il suffit de lancer D:\scripts\rsync.fry\rsync.fry.bat en double cliquant

Restauration

Pour restaurer un ou plusieur fichier il suffit d'utiliser l'emplacement de sauvegarde comme source.
Il est conseillé de restaurer dans un emplacement différent de la source car il n'est pas possible d'annuler.

Backup

Links