Rsync signifie “Remote Sync“. C’est une méthode de synchronisation des répertoires et des fichiers qui fonctionne à la fois localement et à distance.
Avant d’utiliser rsync, vous pouvez vous poser des questions sur le fonctionnement générale.
Dans cet tutoriel, nous passerons en revue le fonctionnement de cet outil rsync pour synchroniser un répertoire.
Qu’est-ce que Rsync ?
Rsync est un utilitaire réseau très flexible en termes de synchronisation de fichiers et de répertoires. Il est inclus dans la plupart des distributions Unix et Linux en tant qu’utilitaire populaire pour les scripts système et son utilisation généralisée sur ces systèmes d’exploitation.
Rsync se traduit par synchronisation à distance. Il permet donc de transférer le contenu d’un dossier vers un ordinateur distant ou en local.
On parle alors de synchronisation car il créé un miroir parfait d’un dossier.
Rsync peut donc être utilisé pour sauvegarder les données d’un poste ou serveur.
Pour cela, l’outil utilise « l’algorithme delta » qui réduit la quantité de données copiées en ne transférant que la partie modifiée des fichiers ou des répertoires.
Rsync : comment ça marche ?
Pour synchroniser des fichiers entre un système local et distant avec , vous avez besoin de deux machines pour agir respectivement comme votre ordinateur local et votre machine distante. Ces deux machines peuvent être des serveurs privés virtuels, des machines virtuelles, des conteneurs ou des ordinateurs personnels tant qu’ils ont été correctement configurés.
Rsync supporte deux modes de communication :
- Par le daemon rsync (port 873 TCP)
- Par SSH (port 22 TCP) et supportant le chiffrement
Voici les principales étapes d’une synchronisation Rsync.
Comment fonctionne l’envoie de fichiers et synchronisation Rsync
Rsync utilise donc un algorithme de transfert delta qui cherche les différences dans un fichier afin de les reporter aux fichiers à synchroniser afin d’en obtenir un miroir parfait.
Rsync ne retransfère donc pas l’intégralité d’un fichier.
L’ancienne version du fichier est divisée en blocs, par ex. 1024 ou 2048 octets, et une somme de contrôle est calculée pour chaque bloc. Le nouveau fichier est ensuite recherché octet par octet pour les blocs dont les sommes de contrôle correspondent à celles de l’ancienne version.
Les blocs correspondants peuvent être identifiés de cette manière même si les blocs sont réordonnés ou à des décalages différents. Ce processus est le cœur même de l’algorithme rsync.
De cette façon, l’expéditeur donnera au destinataire des instructions sur la façon de reconstruire le fichier source dans un nouveau fichier de destination. Ces instructions détaillent toutes les données correspondantes qui peuvent être copiées à partir du fichier de base (s’il en existe un pour le transfert) et incluent toutes les données brutes qui n’étaient pas disponibles localement. À la fin du traitement de chaque fichier, une somme de contrôle du fichier entier est envoyée et l’expéditeur passe au fichier suivant.
La génération des sommes de contrôle glissantes et la recherche de correspondances dans l’ensemble de sommes de contrôle envoyé par le générateur nécessitent une bonne puissance CPU. De tous les processus rsync, c’est l’expéditeur qui sollicite le plus le processeur.
Voici les étapes principales d’une synchronisation Rsync :
- L’établissement de la connexion avec la machine distance. Celle-ci diffère selon le type de connexion. Chaque côté utilise ensuite la valeur minimale comme niveau de protocole pour le transfert
- Ensuite, la liste d’exclusion est transmise.
- Les tâches Rsync locales sont effectuées exactement comme un push. Le client, qui devient l’expéditeur, bifurque un processus serveur pour remplir le rôle de destinataire. Le client/expéditeur et le serveur/destinataire communiquent entre eux via des canaux
- Le client envoie le nom du fichier au serveur, du fichier à synchroniser
- Le serveur calcule les sommes de contrôle de l’ancienne version du fichier et les renvoie au client
- Le client détecte les différences entre la nouvelle et l’ancienne version du fichier et envoie des instructions de fusion au serveur
- Le serveur fusionne l’ancien fichier avec les différences détectées dans le nouveau fichier et renvoie un code d’état OK/FAIL
Deux options utiles :
- –whole-file permet de désactiver l’algorithme de transfert delta de rsync, ce qui fait que tous les fichiers transférés sont envoyés entiers
- –block-size=BLOCKSIZE : Cela force la taille de bloc utilisée dans l’algorithme de transfert delta de rsync à une valeur fixe. Il est normalement sélectionné en fonction de la taille de chaque fichier mis à jour. Voir le rapport technique pour plus de détails.
Pour le fonctionnent complet de rsync, suivre ce lien : http://tutorials.jenkov.com/rsync/index.html
Pour avoir toutes les étapes détaillées d’une synchronisation rsync, suivre ce lien : https://rsync.samba.org/tech_report/
Quel port est utilisé par rsync
Rsync fonctionne comme un démon et écoute le port réseau TCP. La configuration de port par défaut fournie par le démon Rsync est TCP 873.
netstat -pln|grep rsync
tcp 0 0 0.0.0.0:873 0.0.0.0:* LISTEN 6716/rsync
tcp6 0 0 :::873 :::* LISTEN 6716/rsync
Sur des distributions Linux à base Debian (Ubuntu, Mint), vous pouvez changer le port d’écoute dans le fichier /etc/default/rsync.
Modifiez l’option suivante en ajoutant –port :
RSYNC_OPTS='--port=8730'
Le client permet de spécifier un port avec l’option –port avec le numéro de port. Dans cet exemple, nous allons connecter le démon rsync du port système distant 8730.
rsync --port=8730 utilisateur@nomhote:/src /mnt/dest
Mais nous pouvons utiliser un tunnel SSH comme wrapper sécurisé.
Par défaut, nous nous connecterons au port 22 du système distant. Mais ce n’est pas toujours le cas.
Si le port du système distant est différent de 22, nous devons le spécifier explicitement. Nous utiliserons l’option -e pour cela.
Dans cet exemple, nous allons connecter le port système distant 2222 :
rsync -e 'ssh 2222' utilisateur@nomhote:/src /mnt/dest
La FAQ
rsync n’effectue aucun chiffrement par lui-même.
Si vous n’utilisez pas SSH, et que vous ne tunnelisez pas non plus le trafic rsync via stunnel ou un VPN, aucun chiffrement n’est effectué.
Vous pouvez installer rsync très facilement avec APT :
sudo apt install rsync
Oui, vous devez installer rsync sur la machine source et la machine de destination.
rsync fonctionne en effectuant des calculs rapides aux deux extrémités en examinant les horodatages et l’existence de tous les fichiers trouvés à un emplacement particulier. Une fois cela fait, il communique au rsync d’origine la liste trouvée et l’origine peut alors utiliser ces informations pour décider quels fichiers il doit envoyer.
De cette façon, seuls les fichiers récemment modifiés ou nouveaux sont transmis à l’autre côté. Le binaire rsync du côté distant est chargé de rassembler la liste de ce qui existe déjà, puis de recevoir chacun des fichiers qui doivent être transmis et de les mettre en place.
Liens
- Copier ou déplacer un fichier sur Linux
- rsync : synchroniser, copier des fichiers à distance ou locaux
- Créer des sauvegardes Linux avec rsync
- SCP, WinSCP, PSCP : Transférer des fichiers Linux et Windows
- WinSCP : transférer des fichiers de Windows vers Linux en SFTP, SCP, FTPS
- FileZilla : transférer des fichiers de Windows à Linux en SFTP
- Comment utiliser la commande SFTP pour transférer des fichiers
- Rsync sur Windows pour synchroniser et transférer des fichiers
L’article Qu’est-ce que Rsync et comment ça marche est apparu en premier sur malekal.com.
0 Commentaires