rsync s'impose toujours quand il s'agit de transférer régulièrement de grandes quantités de données qui ne changent pas de façon trop considérable. C'est fréquemment le cas lorsqu'on met en place une sauvegarde par exemple. Un autre domaine d'application est ce que l'on appelle les staging servers (serveurs étape). Il s'agit de serveurs qui contiennent les arborescences complètes de serveurs Web et qui sont mis en miroir régulièrement sur un serveur Web dans une DMZ.
On peut utiliser rsync dans deux modes différents. D'une part, rsync peut
archiver ou copier des fichiers. Pour cela, il suffit de faire appel à un shell distant
comme par exemple ssh, sur le système cible.
Cependant, rsync peut aussi être utilisé comme un
démon pour fournir des répertoires au réseau.
L'utilisation principale de rsync n'exige aucune configuration particulière. Grâce à rsync, il est possible de mettre directement en miroir des répertoires complets sur un autre ordinateur. Par exemple, à l'aide de la commande suivante, on peut placer une sauvegarde du répertoire personnel de tux sur un serveur de sauvegarde sun :
rsync -baz -e ssh /home/tux/ tux@sun:backup
Pour restaurer le répertoire, utilisez la commande suivante :
rsync -az -e ssh tux@sun:backup /home/tux/
Jusqu'ici, l'utilisation se différencie à peine d'un programme normal de copie comme scp.
Afin que rsync puisse exploiter pleinement toutes ses fonctionnalités, il faudra
l'utiliser en mode « rsync ». Pour ce faire, le démon rsyncd est
démarré sur un des ordinateurs. Dans ce cas, rsync doit être configuré dans le
fichier /etc/rsyncd.conf. Si par exemple, il s'agit d'accéder
au répertoire /srv/ftp via rsync, il est possible de faire
appel au fichier de configuration suivant :
gid = nobody
uid = nobody
read only = true
use chroot = no
transfer logging = true
log format = %h %o %f %l %b
log file = /var/log/rsyncd.log
[FTP]
path = /srv/ftp
comment = An Example
Le démon rsyncd doit ensuite être démarré avec
rcrsyncd start.
Le démon rsyncd peut aussi être démarré automatiquement lors du processus
d'amorçage. Pour cela, il faut activer ce service dans l'éditeur de niveau d'exécution
de YaST ou saisir manuellement la commande
insserv rsyncd.
Il est également possible de démarrer rsyncd à partir de xinetd. Toutefois, ce n'est
recommandé que pour les serveurs sur lesquels le rsyncd n'est pas trop souvent sollicité.
Dans notre exemple, un fichier journal est également créé pour toutes les
connexions. Celui-ci est enregistré dans /var/log/rsyncd.log.
Maintenant, le transfert peut être testé depuis un ordinateur client. Cette opération a lieu à l'aide de la commande suivante :
rsync -avz sun::FTP
Cette commande permet de répertorier tous les fichiers présents sur le serveur
dans le répertoire /srv/ftp. Cette requête est aussi
enregistrée dans le fichier journal /var/log/rsyncd.log.
Pour démarrer le transfert, indiquez un répertoire cible. Pour le répertoire actuel,
utilisez « . ». Par exemple :
rsync -avz sun::FTP .
Par défaut, aucun fichier n'est supprimé lors de la synchonisation avec
rsync. Lorsque la suppression doit être imposée, il faut indiquer l'option
--delete en sus.
Pour garantir qu'aucun fichier récent n'est écrasé, on peut indiquer l'option
--update au lieu de --delete. Ainsi,
les conflits qui en résultent doivent être résolus manuellement.
Vous trouverez des informations importantes sur rsync dans les pages de manuel
man rsync et
man rsyncd.conf.
Vous trouverez de la documentation technique sur les principes de fonctionnement
de rsync dans /usr/share/doc/packages/rsync/tech_report.ps.
Pour vous tenir informé sur rsync, vous pouvez consulter le site Web du projet
à l'adresse http://rsync.samba.org.