Comment utiliser la commande rsync Linux pour optimiser la synchronisation de fichiers à distance

Comment utiliser la commande rsync Linux pour optimiser la synchronisation de fichiers à distance

Copier des fichiers d’un périphérique à un autre peut être une tâche fastidieuse. Heureusement, vous pouvez simplifier ce processus sous Linux en utilisant la commande rsync.

rsync, abréviation de remote sync, vous permet de transférer et de synchroniser des fichiers ou des dossiers entre des périphériques locaux et des serveurs Linux distants. Que vous soyez un professionnel ou que vous débutiez, la maîtrise de la commande rsync peut rationaliser votre gestion des fichiers sous Linux.

Cet article se penche sur la commande rsync et son fonctionnement. Nous montrerons également comment utiliser la commande rsync à l’aide d’exemples pratiques.

rsync est une commande Linux puissante et polyvalente qui permet de transférer et de synchroniser des fichiers entre des périphériques locaux et distants. Contrairement aux commandes de copie traditionnelles, rsync utilise un algorithme de transfert delta pour ne transmettre que les différences entre les fichiers source et destination. Cette approche réduit considérablement l’utilisation de la bande passante et accélère les transferts.

rsync dispose également de fonctionnalités robustes pour le transfert de fichiers vers un serveur de sauvegarde et les tâches de mise en miroir. Il préserve les attributs des fichiers et prend en charge les transferts sécurisés via SSH, ce qui le rend adapté aux transferts de fichiers locaux et distants.

Comment fonctionne rsync ?

Cette section explore les différentes options de rsync et la syntaxe de base pour différents objectifs.

Options et paramètres de rsync

rsync dispose de nombreuses options de ligne de commande, de paramètres et de fichiers de configuration pour adapter son comportement. En voici quelques-uns couramment utilisés :

  • -v ou –verbose – Augmente la verbosité, fournissant des informations plus détaillées pendant le transfert.
  • -a ou –archive – Mode archive, qui inclut la copie récursive et préserve les autorisations de fichiers, les horodatages, les liens symboliques et les fichiers de périphériques.
  • -r ou –recursive – Copie récursive des répertoires.
  • –delete – Supprime les fichiers exclus du répertoire de destination.
  • –exclude=PATTERN – Exclut les fichiers ou répertoires correspondant au motif spécifié.
  • –include=PATTERN – Inclut les fichiers ou les répertoires correspondant au motif spécifié.
  • -z ou –compress – Compresser les données du fichier pendant le transfert pour réduire l’utilisation de la bande passante.
  • -s ou –sparse – Génère un résumé des fichiers et répertoires synchronisés, y compris les fichiers épars, après une opération de synchronisation.
  • –dry-run – Effectuer un essai sans apporter de modifications réelles.
  • –temp-dir – Spécifie un répertoire pour stocker les fichiers temporaires.
  • -u ou –update – Ignore les fichiers de destination qui sont plus récents que les fichiers source, de sorte que seuls les fichiers plus anciens sont mis à jour.
  • -h ou –human-readable – Affiche les nombres dans un format lisible par l’homme.
  • -i ou –itemize-changes – Affiche une liste des modifications effectuées pendant le transfert.
  • –progress – Affiche la progression du transfert.
  • –stats – Fournit des statistiques sur le transfert de fichiers une fois qu’il est terminé. 
  • -e ou –rsh=COMMAND – Spécifie l’interpréteur de commandes distant à utiliser.
  • –bwlimit=RATE – Limite la bande passante pour augmenter l’efficacité du réseau.
  • -P ou –partial –progress – Conserve les fichiers partiellement transférés et affiche la progression.

Pour obtenir une liste complète de toutes les options rsync disponibles, exécutez la commande suivante :

man rsync

Vous obtiendrez des informations détaillées sur chaque option et paramètre.

Syntaxe de base

La syntaxe de base d’une commande rsync est la suivante :

rsync [OPTIONS] SOURCE DESTINATION
  • [OPTIONS] – Il s’agit de la section dans laquelle vous pouvez inclure des options rsync. Vous pouvez ajouter plus d’une option.
  • SOURCE – Il s’agit du répertoire ou du fichier source que vous souhaitez copier ou synchroniser. Indiquez ici le chemin d’accès aux données sources.
  • DESTINATION – Répertoire de destination dans lequel les données sources seront copiées ou synchronisées. Indiquez ici le chemin d’accès au répertoire ou au fichier de destination.

Syntaxe de base pour le shell distant

Lorsque vous utilisez rsync pour transférer des données d’un ordinateur local vers un serveur privé virtuel (VPS) Linux, la communication repose sur le démon rsync. La syntaxe de rsync pour le shell distant est la suivante :

rsync [OPTIONS] -e "SSH_COMMAND" SOURCE DESTINATION

L’option -e permet de spécifier le shell distant. Dans la plupart des cas, vous utiliserez ssh pour vous connecter à l’hôte distant en utilisant le protocole de mise à jour à distance rsync.

Examinons deux scénarios courants.

Utilisez la commande suivante pour extraire des données d’un système distant vers votre machine locale :

rsync -avz -e ssh utilisateur@hote_distant:/chemin/vers/source/ /chemin/vers/destination/locale/

Utilisez la commande suivante pour transférer des données de votre système de fichiers local vers un répertoire distant à l’aide du protocole CVS :

rsync -avz /chemin/vers/source/locale/ utilisateur@hote_distant:/chemin/vers/destination/distante/

Comment vérifier la version de rsync

rsync est généralement inclus par défaut dans de nombreuses distributions Linux. Vérifions si rsync est déjà installé sur votre système.

Pour les utilisateurs de Windows travaillant avec un hébergement VPS, utilisez PuTTY SSH pour vous connecter. Si vous utilisez macOS ou Linux, accédez à Terminal.

Une fois connecté, exécutez la commande ci-dessous :

rsync --version

Vous obtiendrez un résultat similaire à celui qui suit :

rsync version 3.2.7 protocol version 31

Comment installer rsync

Si rsync n’est pas préinstallé sur votre machine locale ou distante, installez-le manuellement. Voici les commandes d’installation pour les différents systèmes d’exploitation :

Pour les distributions basées sur Debian, y compris Ubuntu :

sudo apt-get install rsync

Pour les distributions basées sur Fedora, telles que CentOS :

sudo dnf install rsync

Pour macOS :

brew install rsync

Comment utiliser les commandes rsync

Avant d’apprendre à utiliser rsync, préparons deux répertoires de test nommés original et duplicate. Le répertoire original contiendra trois fichiers d’exemple, tandis que le répertoire duplicate sera vide au départ. 

Pour créer ces répertoires, suivez les commandes suivantes :

cd
mkdir original
mkdir duplicate

Ensuite, créez trois fichiers d’exemple dans le dossier original à l’aide de la commande touch :

touch original/file{1..3}

Pour vous assurer que tous les fichiers échantillons ont été créés, listez tous les fichiers du répertoire original et observez le système de fichiers à l’aide de la commande suivante :

rsync original/

Commandes rsync les plus courantes

L’un des principaux cas d’utilisation de rsync est la réplication de données entre deux répertoires au sein d’un même système. Pour ce faire, utilisez la commande suivante :

rsync original/* duplicate/

Le contenu du répertoire original sera reproduit dans le répertoire duplicate. Si vous ajoutez un nouveau fichier ou mettez à jour des fichiers existants dans le répertoire original, seuls les fichiers nouveaux ou modifiés seront transférés. Toutefois, si le répertoire duplicate n’existe pas, une erreur se produira.

Pour synchroniser les fichiers et créer un nouveau dossier simultanément, utilisez plutôt cette commande :

rsync original/ duplicate/

Comment utiliser les commandes rsync avec les sous-répertoires

Pour synchroniser des dossiers et des sous-répertoires entre deux emplacements, utilisez la commande rsync copy directory :

rsync -r original/*/ duplicate/

Pour synchroniser un sous-répertoire spécifique, tapez la commande ci-dessous :

rsync -r original/nom_sous_répertoire/ duplicate/

Remplacez nom_sous_répertoire par le nom du sous-dossier que vous souhaitez synchroniser.

Il se peut que vous souhaitiez exclure un sous-répertoire particulier de la synchronisation. Dans ce cas, entrez la commande suivante :

rsync -r --exclude=nom_sous_répertoire original/ duplicate/

Comment synchroniser les fichiers

Pour synchroniser ou mettre à jour des fichiers entre deux dossiers, utilisez cette commande :

rsync -av original/ duplicate/

Pour copier les fichiers du répertoire original vers un serveur distant, entrez cette commande :

rsync -av -e ssh original/ nom_utilisateur@hote_distant:/chemin/vers/destination/

Remplacez nom_utilisateur, hote_distant, et /chemin/vers/destination/ par les valeurs appropriées.

Comment combiner les commandes rsync

Au fur et à mesure que vous vous familiariserez avec rsync, nous explorerons sa capacité à combiner plusieurs commandes pour réaliser des tâches complexes de gestion de fichiers.

Vous pouvez combiner les fonctions de synchronisation et d’exclusion pour obtenir des résultats précis. 

L’exemple ci-dessous montre comment vous pouvez synchroniser tous les fichiers du répertoire rsync original tout en excluant les fichiers TXT :

rsync -av --exclude='*.txt' original/ duplicate/

Combinez l’option -r avec les commandes de synchronisation pour vous assurer que les répertoires rsync et leur contenu sont synchronisés de manière récursive.

rsync -av -r original/ duplicate/

Avant de synchroniser un dossier rsync réel, vous pouvez utiliser l’option –dry-run pour prévisualiser les changements que rsync va effectuer sans faire de modifications réelles.

rsync -av --dry-run original/ duplicate/

Autres options pour les commandes rsync

L’option –delete permet de supprimer du répertoire de destination les fichiers qui n’existent plus dans le répertoire source. Pour utiliser cette option, incluez-la dans votre commande rsync comme suit :

rsync -av --delete original/ duplicate/

rsync permet de synchroniser des fichiers ou des types de fichiers spécifiques à l’aide de motifs et de caractères génériques. Par exemple, pour synchroniser uniquement les fichiers TXT, entrez :

rsync -av original/*.txt duplicate/

Vous pouvez également exclure des fichiers en vous basant sur des motifs spécifiques contenus dans leur nom. Pour exclure un fichier nommé exemple.txt, tapez la commande suivante :

rsync -av --exclude=exemple.txt original/ duplicate/

Combinez les options –include et –exclude pour inclure plusieurs fichiers ou répertoires tout en excluant les autres. Voici un exemple pour inclure les fichiers commençant par la lettre L et exclure tous les autres fichiers :

rsync -av --include='L*' --exclude='*' original/ duplicate/

Pour limiter la synchronisation aux fichiers d’une taille inférieure à un certain seuil, utilisez l’option –max-size suivie de la taille limite. La commande rsync permettant de synchroniser uniquement les fichiers de moins de 10 Mo est la suivante :

rsync -av --max-size=10M original/ duplicate/

Comment ajouter une barre de progression

Il peut être utile de surveiller la progression de la synchronisation, en particulier pour les transferts de fichiers volumineux. rsync vous permet d’inclure une barre de progression à l’aide de l’option –progress. Voici la commande que vous pouvez utiliser :

rsync -av --progress original/ duplicate/

Le résultat ressemblera à ceci :

fichier1.txt
5,120,000 100% 50.00MB/s 0:00:00 (xfr#1, to-chk=2/3)
fichier2.txt
5,345,678 100% 55.67MB/s 0:00:00 (xfr#2, to-chk=1/3)

Pour ajouter une barre de progression et conserver les fichiers partiellement transférés au lieu de les supprimer en cas d’interruption, utilisez l’option -P :

rsync -av -P original/ duplicate/

Comment créer une sauvegarde rsync

Enfin, rsync offre un moyen pratique de créer des fichiers de sauvegarde à l’aide de l’option –backup. Cette option vous permet de sauvegarder des fichiers sur un serveur, afin d’éviter qu’ils ne soient écrasés pendant la synchronisation.

Pour créer une sauvegarde à distance et spécifier son répertoire, utilisez la commande suivante :

rsync -av --backup --backup-dir=/chemin/vers/sauvegarde/ original/ duplicate/

Lorsqu’elle est exécutée, l’option de sauvegarde rsync génère une liste de fichiers incrémentielle et ajoute un tilde (~ ) au nom du fichier d’origine, par exemple important.txt.

Conclusion

rsync est un puissant outil de synchronisation à distance, de transfert de données et de mise en miroir de fichiers. Dans ce guide, nous avons couvert tout ce dont vous avez besoin pour démarrer avec l’outil, de l’installation aux exemples pratiques de rsync que vous pouvez appliquer via la ligne de commande. La maîtrise de rsync améliorera votre gestion des fichiers Linux, la rendant plus efficace et plus fiable.

rsync – FAQ

Quels sont les systèmes d’exploitation compatibles avec rsync ?

rsync est principalement conçu pour les systèmes d’exploitation de type Unix, notamment Linux et macOS. Cependant, il peut également être utilisé sur les systèmes Windows à l’aide d’applications clientes rsync tierces telles que Cygwin ou Windows Subsystem for Linux (WSL). Cela fait de rsync un choix polyvalent pour la synchronisation de fichiers entre différents systèmes d’exploitation.

Quelle est la différence entre rsync et les autres méthodes de transfert de fichiers ?

Au lieu de transférer des systèmes de fichiers entiers, rsync n’envoie que les différences entre les fichiers de destination et les fichiers sources, ce qui réduit l’utilisation de la bande passante. Il peut fonctionner sur des connexions SSH sécurisées, offrir une compression flexible des fichiers et reprendre les transferts interrompus. Il est particulièrement pratique lorsqu’il s’agit de traiter un grand nombre de fichiers sur un système distant.

Y a-t-il des limites ou des inconvénients à l’utilisation de rsync ?

Bien que rsync soit un outil puissant, il présente certaines limites. Tout d’abord, il n’est peut-être pas adapté à la synchronisation en temps réel, car il fonctionne en mode batch. En outre, il n’offre pas de cryptage natif, les utilisateurs s’appuyant souvent sur SSH pour des transferts sécurisés. Enfin, rsync peut être complexe pour les débutants, nécessitant une courbe d’apprentissage pour maîtriser ses nombreuses options.

Author
L'auteur

Ismail

Ismail est un spécialiste du référencement et de la localisation chez Hostinger. Il est passionné par la technologie et le développement web et possède des années d'expérience dans le domaine informatique. Ses passe-temps incluent les jeux vidéo et le football.