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.
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/
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/
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/