rsync

Généralités

rsync (remote synchronization, en français, “synchronisation distante”) est un logiciel libre de synchronisation de fichiers, distribué sous 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 sauvegardes incrémentales ou pour diffuser le contenu d'un répertoire de référence.

rsync fonctionne sur un large spectre de systèmes d'exploitation (Microsoft Windows, Cygwin, Linux, Mac OS X), permettant ainsi de synchroniser des fichiers de différents systèmes d'exploitation.

Configuration

Lorsqu'on est positionné sur un ordinateur portable avec une session console en utilisateur de base (pas root) et qu'on veut sauvegarder un dossier local (/home/user/Documents) vers un serveur (un ordinateur fixe) qui dispose d'un compte utilisateur nommé jean, d'un serveur SSH de lancé et d'une adresse IP (192.168.1.66).

Pour sauvegarder les données du portable sur le fixe.

rsync -avz --delete /home/seb/Documents/ jean@192.168.1.66:/mnt/data/save/Documents-save/
rsync -avz --delete /home/seb/Musique/ jean@192.168.1.66:/mnt/data/save/musique-save/
rsync -avz --delete /home/seb/travail/ jean@192.168.1.66:/mnt/data/save/travail-save/

Uniquement les fichiers et dossier d'un dossier source qui sont nommés avec un pattern de date.

rsync -avz --delete /home/seb/travail/*20140501* jean@192.168.1.66:/mnt/data/save/travail-save/

Tous les fichiers et dossiers sauf ceux qui sont nommés avec un pattern. Ici @eaDir.

rsync -avz --delete --filter "- **@eaDir/**" /home/seb/travail/ jean@192.168.1.66:/mnt/data/save/travail-save/

-a : conserve les permissions des fichiers sauvegardés.

-A : conserve les extended ACL.

-v : verbeux sur la sortie standard.

-z : compresse le flux sur le réseau.

–delete : supprime les fichiers dans le dossier de destination qui ne sont plus présent dans le dossier source. Cette option permet de réaliser l'exacte copie du dossier qu'on sauvegarde. Les deux dossiers sont après la commande complètement identique.

–backup-dir=DIR : permet de stocker dans un autre dossier uniquement les différences entre le dossier source et la précédente sauvegarde full. Option qui permet de faire des sauvegardes différentielles.

Remarque importante

Il est important de faire attention lorsqu'on utilise la commande –delete. Cela signifie que si on sauvegarde toutes les heures avec cette option, si on fait une suppression malencontreuse, elle sera répercutée! On peut coupler rsync avec une gestion incrémentale des sauvegardes afin d'éviter ce désagrément.

rsync -avz --delete /home/seb/travail jean@192.168.1.66:/mnt/data/save/travail-save/

Autre exemple de copie du portable vers le fixe.

rsync -avz -e ssh --delete /home/user/MusiqueTemporaire jean@192.168.1.66:/media/disk/MusiqueTemporaire-save/

-e ssh : permet de spécifier le serveur qu'on veut interroger. Le spécifier n'est pas obligatoire.

L'opération dans le sens inverse est bien sûr possible. On est toujours sur le portable et on souhaite récupérer la copie des éléments d'un dossier présent sur le serveur (ordinateur fixe).

rsync -avz -e ssh --delete jean@192.168.1.66:/mnt/data/save/Documents-save/ /home/seb/Documents/recup/