Implantation

Ce tutoriel développe la mise en place d'un serveur de sauvegarde rsync et de son utilisation depuis les machines clientes avec une connexion par SSH.


Installation des packages

Sur le serveur et les clients :

Image1

Image2

rsync-2.6.0-1.rpm
openssh-3.6.1p2-12.rpm
openssh-server-3.6.1p2-12.rpm
openssh-clients-3.6.1p2-12.rpm

rsync_2.6.1-1-i386.deb
ssh_3.8p1-3-i386.deb



Configuration du Serveur Rsync

Créez un fichier /etc/rsyncd.conf

# Permet d'afficher un message contenu dans /etc/rsyncd.motd aux clients
#motd file = /etc/rsyncd.motd

# Enregistrement des logs
log file = /var/log/rsyncd.log

# Enregistrement du pid
pid file = /var/run/rsyncd.pid

# Permet de contrôler le nombre de connexions
lock file = /var/run/rsync.lock

# Nom de la section qui archivera les profiles des utilisateurs Samba
[sambahome]

# répertoire ou sera sauvegardé les fichiers du client
path = /mnt/sauvegarde/samba
comment = profiles samba

# spécifie sous quel uid et gid s'effectueront le transfert
uid = root
gid = root

# le serveur rsync effectue un chroot dans le patch avant le transfert avec le client, ce qui améliore la sécurité. mais demande le privilège root et ne permet pas de suivre les liens symboliques.
use chroot = yes

# limite le nombre des clients connectés
max connections = 1

# laisser à "no" pour autoriser les transferts. si vous souhaitez désactiver cette section pour refuser l'accès en écriture aux clients mettez à "yes"
read only = no

# autorise les clients à lister cette section
list = yes

# permet de spécifier les utilisateurs qui ont le droit de se connecter. dans le cas ou vous n'utilisez pas SSH
# auth users = username
# secrets file = /etc/rsyncd.scrt
# strict modes = yes

# permet de spécifier les IP des clients autorisés à se connecter ou non au serveur rsync
hosts allow = 192.168.0.2
hosts deny = 192.168.0.0/24
192.168.1.0/24


# Nom de la section qui archivera le cache DNS primaire
[cachedns]

path = /mnt/sauvegarde/named
comment = cache dns primaire
uid = root
gid = root
use chroot = yes
max connections = 1
read only = no
list = no
hosts allow = 192.168.0.1
hosts deny = 192.168.0.0/24
192.168.1.0/24


# Nom de la section qui archivera les mails du serveur Postfix
[mails]

path = /mnt/sauvegarde/mails
comment = mails postfix
uid = root
gid = root
use chroot = yes
max connections = 1
read only = no
list = no
hosts allow = 192.168.0.3
hosts deny = 192.168.0.0/24
192.168.1.0/24


# Nom de la section qui archivera les fichiers du serveur intranet
[intranet]
path = /mnt/sauvegarde/intranet
comment = serveur intranet
uid = root
gid = root
use chroot = yes
max connections = 1
read only = no
list = no
hosts allow = 192.168.0.5
hosts deny = 192.168.0.0/24
192.168.1.0/24


Lancez manuellement le serveur rsync par cette commande :

Image3

Image4

[root@srv7 user]# rsync --daemon

pc:/home/user# /etc/init.d/rsync start

ou par le super daemon xinetd

Configurez et lancez votre serveur OpenSSH (voir tutoriel OpenSSH) et ajoutez les clefs publique de vos machines clientes dans /root/.ssh/authorized_keys pour qu'il puissent vous identifier par clef sans demander de mot de passe (voir "Connexion par paires de clefs")


Sauvegarde Rsync lancée par SSH depuis les machines clientes

Cela sous entend que votre serveur SSH fonctionne bien sur le serveur Rsync et que vous avez mis en place vos clients SSH.

Lancez un terminal et connectez vous en root.
vous avez le choix dans les options rsync de simplement archiver vos fichiers :

[root@srv2 user]# rsync -avz -e ssh /home/samba/ 192.168.0.7::sambahome

-avz pour un archivage par défaut en verbose et avec compression
-e ssh pour indiquer que l'on communique par SSH
/home/samba/ est le répertoire ou se trouvent les fichiers profiles des utilisateurs Samba
192.168.0.7::sambahome adresse du serveur rsync avec la section sambahome prédéfinie, qui sauvegardera vers le répertoire /mnt/sauvegarde/samba


ou de préciser les options rsync :
[root@srv2 user]# rsync -vrlpogtSz -C --delete --partial -e ssh /home/samba/ 192.168.0.7::sambahome

-v, --verbose           plus loquace
-r, --recursive         visite récursive des répertoires
-l, --links                  copie les liens symboliques comme liens symboliques
-p, --perms              préserve les permissions
-o, --owner              préserve le propriétaire (root uniquement)
-g, --group              préserve le groupe
-t, --times                préserve les dates
-S, --sparse            traite les fichiers à trous efficacement
-C, --cvs-exclude  ignore automatiquement des fichiers, comme le ferait CVS

--delete                   efface les fichiers qui n'existent pas du coté expédition
--partial                   conserve les fichiers partiellement transférés

-z, --compress       compresse les données


[root@srv1 user]# rsync -avz -e ssh /home/samba/ 192.168.0.7::cachedns
[root@srv3 user]# rsync -vrlpogtSz -C --delete --partial -e ssh /home/samba/ 192.168.0.7::mails
[root@srv5 user]# rsync -avz -e ssh /home/samba/ 192.168.0.7::intranet


Automatiser toutes ces commandes sur vos machines clientes avec crontab.
Faites vous un fichier sauvegarde.sh sur chaque
machines :

#!/bin/bash
rsync -vrlpogtSz -C --delete --partial -e ssh /home/samba/ 192.168.0.7::sambahome


Puis créez une ligne dans crontab :

[root@srv2 user]# crontab -e (éditeur VI => i pour insérer)
0 2 */3 * * /root/sauvegarde.sh
(exécute tous les 3 jours à 2h du matin)

([Echap] :wq! pour enregistrer et quitter)

crontab: installing new crontab
[root@srv2 user]#


[root@srv5 user]# crontab -e

0 4 */7 * * /root/sauvegarde.sh (exécute toutes les semaines à 4h)
([Echap] :wq! pour enregistrer et quitter)

crontab: installing new crontab
[root@srv5 user]#




Dernière modification : 12/08/04

 

Copyright © 04/02/2004, Arnofear

Contrat Creative Commons Ce document est publié sous licence Creative Commons
Paternité - Pas d'Utilisation Commerciale - Partage des Conditions Initiales à l'Identique :
http://creativecommons.org/licenses/by-nc-sa/3.0/deed.fr