Cette page décrit la mise en place d'un serveur rsync.
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 :
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
rsync client et serveur nécessite le paquet :
Voici un exemple d'utilisation de rsync pour une sauvegarde locale.
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
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
dirs :
/etc /var/lib/samba /home
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.
La mise en place d'un serveur permet d'effectuer une sauvegarde via le protocole rsync.
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
Il faut ensuite définir la configuration du serveur rsyncd grâce au fichier /etc/rsyncd.conf.
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
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 :
/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:***
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
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
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
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.