Commandes de base

EN REDAC rsync : Une commande pour synchroniser et sauvegarder des fichiers

Cet article est en cours de travaux, des modifications sont en cours de réalisation, revenez plus tard le reconsulter. Merci.
Table des matières

Introduction



Rsync est un programme de synchronisation de fichiers.
La synchronisation avec Rsync 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 mettre en place des sauvegardes locales ou distantes.

La commande rsync



La commande s'utilise de cette manière :
Code BASH :
rsync [options] source/ destination/

Attention, il existe une subtilité avec les noms des dossiers, ces 2 commandes vont avoir un comportement différent :

Code BASH :
rsync source/ destination/
rsync source destination/


Dans le premier cas, le contenu de source sera synchronisé dans le dossier destination.
Dans le second cas, le contenu de source sera créé dans destination/source (en conservant le nom du dossier).
Pour ne pas m’emmêler les pinceaux, je mets le / à la fin des 2 dossiers et je créé au besoin mon arborescence dans la destination avant.
rsync possède plein d'avantages et de fonctionnalités, puisqu'il copie/synchronise des fichiers locaux vers/depuis un autre emplacement local ou distant. Il supporte les liens symboliques, et conserve les permissions. Il est plus rapide que scp puisqu'il transfert juste les différences (sauvegarde incrémentale), et est capable de compresser les données pendant le transfert.
Si'il est utilisé d'une source locale vers une destination sur le réseau, il utilise par défaut SSH. le transfert est donc sécurisé et on bénéficie des paires de clés publiques/privées si générées.
Dans le cadre d'une synchronisation avec un hôte distant :

Code BASH :
rsync source/ user@machine:/destination/
rsync user@machine:/source/ destination/


Il est même possible de synchroniser depuis un hôte qui possède un démon rsync :

Code BASH :
rsync rsync://@machine:/source/ destination/


Des exemples



Il sera plus simple d'apprendre rsync par des exemples que d'expliquer les options.

Synchronisation d'une machine locale sur une distante



Sauvegarde de /home/adrien de la machine locale sur la machine distante 212.227.108.142 dans /home/sauvegardes/adrien :

Code BASH :
rsync -avz /home/adrien/ adrien@212.227.108.142:/home/sauvegardes/adrien/


Synchronisation d'une machine locale sur une distante avec un port SSH différent



Sauvegarde de /home/adrien de la machine locale sur la machine distante 212.227.108.142 dans /home/sauvegardes/adrien.
Le serveur SSH distant écoute sur le port 2222 :

Code BASH :
rsync -avz  -e "ssh -p 2222"  /home/adrien/ adrien@212.227.108.142:/home/sauvegardes/adrien/



Supprimer dans la destination ce qui n'est plus dans la source



Si on veut avec rsync supprimer dans la destination ce qui n'est plus dans la source, on utilisera l'option --delete :
Code BASH :
rsync -avz /home/adrien/ /media/backup/adrien/


S'il y a des erreurs, les fichiers ne se suppriment pas. Pour contourner cela, on ajoutera l'option --ignore-errors
Cette page a été vue 12502 fois