Table des matières

Rsync

Critères requis :

Présentation

Rsync remote synchronization, (en français : « synchronisation distante ») est un logiciel libre de synchronisation de fichiers, distribué sous licence GNU GPL. La synchronisation est unidirectionnelle, c'est-à-dire qu'elle copie les fichiers de la source en direction de la destination. rsync est donc utilisé pour réaliser des Sauvegarde incrémentielle ou décrémentielle ou pour diffuser le contenu d'un répertoire de référence.

“rsync” fonctionne sur une large gamme de systèmes d'exploitation (Microsoft Windows, GNU/Linux, Mac OS X, Unix), permettant ainsi de synchroniser des fichiers de différents systèmes d'exploitation.

Source : http://fr.wikipedia.org/wiki/Rsync

Utilisation

Faire un miroir de dossier

Une des principale fonctionnalité d'RSync est la synchronisation d'un dossier local vers un dossier distant (ou inversement !).

Cela permettra d'avoir une copie parfaite d'un dossier existant à un autre endroit, principalement dans le cadre d'une sauvegarde.

rsync -a source/ destination/
La source ou la destination peuvent être des dossiers distants, comme vu avec SCP.
Exemple :
rsync -a monDossierLocal user@mon.adresse.I.P:/monDossierDistant

Ici, l'argument “-a” servira à plusieurs choses :

        -a, --archive               archive mode; equals -rlptgoD (no -H,-A,-X)
  • Récursivité
  • Copie des liens symboliques en tant que liens symboliques
  • Préservation des permissions
  • Préservation des dates de modifications
  • Préservation du groupe
  • Préservation du propriétaire
  • Transfert des fichiers spécifiques

C'est le mode le plus basique de RSync, et souvent utilisée avec l'option “-v”, pour le mode verbeux.

Une copie parfaite

La méthode précédemment décrite fonctionne parfaitement bien, mais ne répercutera pas par défaut les suppressions du dossier source vers le dossier distant.

C'est à dire que si vous avez un fichier “fichier.txt” dans la source, et que vous synchronisez une première fois, le fichier sera aussi présent dans la destination.
Cependant, si, par la suite, vous supprimez le fichier en question et resynchronisez les dossiers, le fichier sera toujours présent dans la destination.

Si vous ne voulez pas de ce comportement, voici comment faire :

 rsync -av --delete-after source/ destination/

L'option –delete-after permet de répercuter les suppressions après que la copie a eu lieu, ce qui est en général le comportement préféré.

L'exclusion

Il arrivera parfois que vous souhaitiez synchroniser tout un dossier, sauf un sous-dossier bien spécifique.

L'option –exclude est là pour ça.

Admettons que je veuille sauvegarder toute ma machine (/), mais que je ne veuille pas des dossiers spéciaux type /proc & /dev.

Je vais alors utiliser l'option exclude pour tout sauvegarder, sauf ces dossiers :

rsync -av --exclude=/dev --exclude=/proc / destination/

Cas pratique & compression

Une commande à retenir, qui vous servira dans toutes les situations :

rsync -avhP source/ destination

Voyons les nouveaux arguments :

  • -h : Pour “humanize”. Les unités (octects) seront convertis en Kilo/Méga/Giga Octects au besoin, pour une meilleur lisibilité.
  • -P : Pour “Progress”. Affichera en temps réel la progression du transfert en court (avec -v, cela affichera la progression fichier par fichier).

Cette commande vous permettra donc de synchroniser un dossier complet, tout en affichant la progression de manière intelligible.

RSync a aussi l'avantage de pouvoir reprendre là où il s'était arrêté lors d'une copie. Utile quand votre connexion Internet pose problème.
La compression : z

L'option -z permet de compresser les dossiers avant l'envoi, ce qui réduira la bande passante utilisée.

C'est en général préféré, sauf lors de transfert à haute vitesse. En effet, RSync étant par défaut mono-thread, la compression utilisera plus de CPU sur le process, réduisant ainsi la vitesse de transfert.


Bien évidemment, nous vous invitons à consulter votre man page pour plus de détails ! :

man (1) rsync