Guide ultime de rsync sur Ubuntu : synchronisation de fichiers et sauvegarde

目次

1. Introduction

What is rsync?

rsync est un outil en ligne de commande pour la synchronisation rapide et efficace ainsi que la copie de fichiers et de répertoires. Largement utilisé sur les systèmes Linux et de type Unix, il utilise un mécanisme de transfert différentiel, permettant une synchronisation efficace même de gros volumes de fichiers sans transfert de données superflu. Il est souvent inclus par défaut dans les distributions Linux comme Ubuntu, ce qui en fait un outil indispensable pour les administrateurs de serveurs et les développeurs.

Benefits of using rsync on Ubuntu

Sur Ubuntu, rsync est très efficace pour les sauvegardes de fichiers courantes et la synchronisation de plusieurs répertoires. Sans dépendre d’interfaces graphiques, vous pouvez réaliser des transferts de fichiers à grande vitesse, qu’ils soient locaux ou distants, en saisissant simplement quelques commandes dans le terminal.

Il est particulièrement utile dans les scénarios suivants :

  • Sauvegardes régulières sur des disques durs externes ou NAS
  • Synchronisation des dossiers de projet pendant le développement
  • Tâches de déploiement vers des serveurs distants
  • Amélioration de la disponibilité grâce au mirroring de fichiers

Differences from other commands

Comparé à la commande cp, rsync ne transfère que les différences entre la source et la destination, réduisant ainsi considérablement le temps de traitement. Comparé à scp, il offre des avantages tels que la possibilité de reprendre après des erreurs et des réglages flexibles de contrôle de la bande passante. De plus, un avantage majeur est sa capacité à transférer des fichiers tout en préservant leurs attributs (propriétaire, permissions, horodatages, etc.).

Purpose of this article

Cet article fournira une explication détaillée sur la façon d’installer et d’utiliser efficacement rsync dans un environnement Ubuntu, incluant des exemples de commandes pratiques et des cas d’utilisation. Nous couvrirons les outils graphiques et les conseils de dépannage pour aider les débutants à démarrer facilement, en apprenant l’utilisation pratique de rsync étape par étape.

2. Comment installer rsync (Ubuntu)

Vérifier si rsync est préinstallé sur Ubuntu

Dans la plupart des environnements Ubuntu, rsync est généralement installé par défaut. Tout d’abord, vérifions si rsync est déjà disponible en utilisant la commande suivante.

rsync --version

Si cette commande s’exécute et affiche les informations de version, rsync est déjà installé et prêt à l’emploi.

Étapes si rsync n’est pas installé

Si vous voyez des messages tels que « command not found » ou « rsync : command not found », suivez ces étapes pour l’installer.

  1. Mettre à jour les informations des paquets :
sudo apt update
  1. Installer rsync :__101__
sudo apt install rsync
  1. Une fois l’installation terminée, vérifiez à nouveau la version :
rsync --version

Si les informations de version s’affichent sans problème, l’installation a réussi.

L’installation via snap ou d’autres méthodes est-elle nécessaire ?

Pour Ubuntu, installer rsync via APT est la méthode la plus recommandée. Bien qu’un paquet snap existe, la version APT suffit pour une utilisation typique et offre une meilleure stabilité et compatibilité. À moins d’avoir une raison précise, choisissez l’installation via APT.

Notes lors de l’installation

  • Les versions plus anciennes d’Ubuntu peuvent nécessiter des mises à jour des dépôts.
  • N’oubliez pas d’utiliser sudo car les privilèges root sont nécessaires.
  • Dans les environnements avec des connexions réseau instables, des erreurs d’installation peuvent survenir. Il est recommandé d’effectuer l’installation sur un réseau stable.

3. Utilisation de base de rsync

Syntaxe de base de rsync

La syntaxe de la commande rsync est simple mais très flexible. La forme de base est la suivante :

rsync [options] source destination

Par exemple, pour copier le contenu du répertoire /home/user/documents/ vers /mnt/backup/, vous écririez :

rsync -av /home/user/documents/ /mnt/backup/

Dans cette commande, les options suivantes sont utilisées :

  • -a: Mode archive (préserve la structure des répertoires, les permissions, la propriété, etc.)
  • -v: Sortie verbeuse (affiche quels fichiers sont en cours de copie)

Attention au slash final dans les chemins de répertoire

Dans rsync, le comportement change selon que le chemin source se termine ou non par un slash.

  • /home/user/documents/ (avec slash)
    → Seul le contenu est copié (par ex., file1.txt, file2.txt, etc.)
  • /home/user/documents (sans slash)
    → Le dossier documents lui‑même est copié (résultat : /mnt/backup/documents/file1.txt)

Cette différence est un point clé propre à rsync. Utilisez‑la selon vos besoins.

Liste des options fréquemment utilisées

Rsync possède de nombreuses options, mais les suivantes sont couramment utilisées pour les opérations de base :

OptionDescription
-aMode d’archivage (récursif, préserve les attributs)
-vAfficher les informations détaillées du transfert
-nEffectuer un essai sans modifications (exécution à blanc)
--progressAfficher la progression de la copie
--deleteSupprimer les fichiers dans la destination qui n’existent pas dans la source

Vous voulez voir ce qui se passera avant l’exécution ?

Pour vérifier quels fichiers seront traités avant de les transférer réellement, utilisez l’option -n ou --dry-run.

rsync -av --dry-run /home/user/documents/ /mnt/backup/

Cela vous permet d’apercevoir à l’avance « ce qui se passera », aidant à prévenir les pertes de données accidentelles.

Gestion des fichiers cachés

Rsync inclut automatiquement les fichiers cachés (commençant par un point .) dans le transfert par défaut. Cela permet une synchronisation facile des fichiers de configuration et des informations d’environnement.

4. Synchronisation avec les serveurs distants

Synchronisation à distance avec rsync via SSH

L’un des principaux avantages de rsync est sa capacité à synchroniser des fichiers avec des serveurs distants via SSH. Cela permet le transfert de données sur le réseau tout en maintenant une connexion sécurisée.

La syntaxe de base est la suivante :

rsync -avz source user@remote_IP_or_hostname:destination_path

Par exemple, pour synchroniser le répertoire local /home/user/documents/ vers /var/www/backup/ sur un serveur distant, vous utiliseriez :

rsync -avz /home/user/documents/ user@example.com:/var/www/backup/
  • L’option -z compresse les données pendant le transfert, ce qui est efficace lorsque la bande passante est limitée.
  • La partie user@host indique le nom d’utilisateur SSH et le nom d’hôte de la destination.

Première connexion et configuration de l’authentification par clé

Lors de la première connexion à une destination distante, il se peut que l’on vous demande de confirmer l’authenticité de l’hôte. Si cela semble sûr, tapez « yes ».

Pour des exécutions fréquentes de rsync, il est courant de configurer l’authentification par clé SSH afin d’éviter de saisir des mots de passe.

  1. Générez les clés SSH localement (si vous ne les avez pas) :
ssh-keygen -t rsa
  1. Copiez la clé publique sur le serveur distant :
ssh-copy-id user@example.com

Après cela, rsync peut être exécuté sans mot de passe.

Lorsque la spécification d’un numéro de port est nécessaire

Si le serveur distant utilise un port SSH non standard (autre que 22), vous pouvez le spécifier explicitement à l’aide de l’option -e.

rsync -avz -e "ssh -p 2222" /home/user/documents/ user@example.com:/var/www/backup/

Attention à la synchronisation bidirectionnelle

Rsync est un outil de synchronisation unidirectionnel et ne synchronise que de « source → destination ». Si vous avez besoin d’une synchronisation bidirectionnelle, rsync seul n’est pas suffisant, et vous devriez envisager d’utiliser un autre outil (par exemple, unison).

5. Options rsync utiles et exemples d’utilisation

Options utiles au-delà de l’utilisation de base de rsync

En plus des fonctions de copie et de synchronisation de base, rsync propose diverses options utiles. Voici quelques options avancées qui sont pratiques en utilisation réelle.

–delete : Supprimer les fichiers absents de la source

Cette option vous permet de supprimer automatiquement les fichiers dans la destination qui n’existent pas dans la source. C’est très utile lorsque vous souhaitez réaliser un mirroring (une réplique complète).

rsync -av --delete /home/user/source/ /mnt/backup/

※ Comme il existe un risque de suppression accidentelle de fichiers nécessaires, il est recommandé de vérifier d’abord avec --dry-run.

–exclude : Exclure des fichiers ou répertoires spécifiques

Pour exclure certains fichiers ou répertoires de la synchronisation, utilisez --exclude.

rsync -av --exclude '*.log' --exclude 'node_modules' /project/ /backup/

Vous pouvez combiner plusieurs motifs pour des réglages d’exclusion flexibles.

–bwlimit : Limite de bande passante

Si vous voulez exécuter rsync en arrière‑plan sans impacter le reste du trafic réseau, l’option --bwlimit est efficace pour limiter la vitesse de transfert.

rsync -av --bwlimit=5000 /data/ user@remote:/data/

(Cet exemple limite la vitesse à un maximum de 5 Mo/s)

Exemples d’utilisation pratique

rsync à des fins de sauvegarde

Rsync peut également être utilisé comme un outil de sauvegarde simple et très performant. Vous trouverez ci‑dessous une commande à utiliser pour des sauvegardes quotidiennes sur un disque dur externe.

rsync -a --delete /home/user/ /media/usb/backup/

Ici, --delete est utilisé conjointement pour obtenir un mirroring complet.

Exécution automatisée combinée avec cron

En combinant rsync avec cron, vous pouvez automatiser la synchronisation régulière. Par exemple, pour effectuer une sauvegarde chaque nuit à 2 h du matin, modifiez votre crontab comme suit :

0 2 * * * rsync -a /home/user/ /mnt/backup/ >> /var/log/rsync.log 2>&1

Cela permet une synchronisation automatique sans surveillance, améliorant considérablement l’efficacité des tâches et des opérations serveur.

rsync offre à la fois « flexibilité » et « efficacité »

L’attrait de rsync réside dans sa capacité à offrir à la fois « flexibilité pour s’adapter à n’importe quel usage » et « haute efficacité de transfert » grâce à son riche ensemble d’options. En tant que méthode pour réaliser une synchronisation sécurisée et rapide comme prévu, plutôt qu’une simple copie, rsync est un choix très puissant.

6. Introduction à l’outil GUI « Grsync »

Recommandé pour ceux qui ne sont pas à l’aise avec la ligne de commande

rsync est un outil très puissant, mais son fonctionnement repose principalement sur la saisie de commandes dans le terminal. Pour les débutants qui ne connaissent pas Linux ou ceux qui préfèrent configurer et utiliser les outils visuellement, cela peut sembler intimidant.

C’est là que Grsync s’avère utile. Grsync est un outil graphique qui utilise rsync en interne tout en offrant une interface graphique pour la configuration et l’exécution.

Comment installer Grsync (Ubuntu)

Sur Ubuntu, vous pouvez installer facilement Grsync en utilisant APT.

sudo apt update
sudo apt install grsync

Après l’installation, « Grsync » apparaîtra dans votre liste d’applications, et cliquer dessus lancera l’interface graphique.

Utilisation de base de Grsync

L’interface de Grsync est intuitive et vous permet de configurer des éléments tels que :

  • Saisir chemins source et destination
  • Cases à cocher correspondant aux principales rsync options telles que « Copie récursive », « Préserver les attributs », et « Option de suppression »
  • Spécifier motifs d’exclusion
  • Bouton exécution à blanc

Après configuration, cliquer sur le bouton « Exécuter » lancera rsync en arrière-plan et effectuera la synchronisation des fichiers.

Tâches périodiques faciles avec la fonction Profil

Grsync vous permet d’enregistrer vos paramètres de configuration sous forme de « Profiles ». C’est très pratique pour gérer plusieurs paramètres de sauvegarde ou destinations de synchronisation.

Par exemple :

  • Profil 1 : Sauvegarde sur clé USB
  • Profil 2 : Synchronisation avec NAS
  • Profil 3 : Miroir vers un serveur externe

Vous pouvez facilement basculer entre ces utilisations directement depuis l’interface graphique.

Avantages et inconvénients de l’utilisation de Grsync

ProsCons
Opération intuitive sans commandesCertaines options avancées peuvent ne pas être configurables via l’interface graphique.
Configurer tout en confirmant la signification des optionsLa visualisation des détails du processus est quelque peu abstraite et peut être insuffisante pour ceux qui sont habitués à la sortie de rsync.
Facile à démarrer en toute sécurité (par ex., test à blanc avec un bouton)Moins flexible dans certaines situations par rapport à l’utilisation du terminal

7. Problèmes courants et solutions

Les permissions de fichiers ne sont pas conservées

Symptôme: Le propriétaire ou les permissions des fichiers à la destination changent.
Cause: rsync est exécuté avec les privilèges d’utilisateur normal ou l’option -a (archive) n’est pas utilisée.
Solution:

  • Spécifiez explicitement l’option -a.
  • Exécutez rsync avec sudo si nécessaire.
sudo rsync -a /source/ /destination/

Les liens symboliques sont ignorés

Symptôme: Les fichiers de lien ne sont pas copiés, ou ils sont copiés comme de vrais fichiers.
Cause: Par défaut, les liens symboliques sont copiés tels quels, mais le comportement diffère selon les options.
Solution:

  • Pour copier les liens tels quels : utilisez -a.
  • Pour copier le fichier cible lui‑même : ajoutez --copy-links.

« Permission denied » s’affiche

Symptôme: La synchronisation échoue avec une erreur « Permission denied » pour des fichiers ou répertoires spécifiques.
Cause: Permissions d’accès insuffisantes.
Solution:

  • Exécutez rsync avec sudo.
  • Vérifiez et corrigez les permissions d’accès des répertoires source ou destination.
sudo rsync -a /source/ /destination/

« rsync : connexion fermée de façon inattendue » s’affiche (lors d’une connexion distante)

Symptôme: La synchronisation est interrompue par une erreur lors de la connexion au serveur distant.
Cause: Problèmes de configuration SSH, spécification de chemin incorrecte, paramètres de permissions à distance, etc.
Solution:

  • Vérifiez la connexion SSH seule : vérifiez que ssh user@host fonctionne.
  • Vérifiez à nouveau que le chemin de destination est correct.
  • Envisagez des problèmes de pare-feu ou de ports.

« Liste d’arguments trop longue »

Symptôme: Une erreur se produit lors de la tentative de synchronisation d’un répertoire contenant un très grand nombre de fichiers.
Cause: Dépassement de la limite de longueur des arguments de la ligne de commande.
Solution:

  • Réduisez la cible en utilisant --exclude ou --include.
  • Synchronisez en plusieurs étapes, répertoire par répertoire.

8. FAQ (Foire aux questions)

Ici, nous avons rassemblé les questions fréquentes et les problèmes que les utilisateurs rencontrent lorsqu’ils utilisent rsync sur Ubuntu. Nous fournirons des explications claires en nous concentrant sur les points où les débutants se coincent souvent.

Q1. Comment puis‑je préserver la propriété et les permissions des fichiers avec rsync ?

A1. En utilisant l’option -a (mode archive), vous pouvez copier des fichiers tout en préservant leurs permissions, horodatages, propriétaire, groupe, et plus encore. Cette option est essentielle pour des tâches comme la sauvegarde des configurations système.

rsync -a /etc/ /backup/etc/

Q2. Comment exclure des fichiers ou dossiers spécifiques de la synchronisation ?

A2. Vous pouvez exclure des fichiers ou des motifs spécifiques de la cible de synchronisation en utilisant l’option --exclude.

rsync -av --exclude '*.log' /project/ /backup/project/

Les caractères génériques peuvent également être utilisés, ce qui facilite l’exclusion de répertoires comme node_modules ou .git.

Q3. Comment limiter la bande passante réseau avec rsync ?

A3. L’option --bwlimit vous permet de limiter la vitesse de transfert. L’unité est KB/s.

rsync -av --bwlimit=5000 /data/ user@remote:/data/

Dans cet exemple, la vitesse de transfert est limitée à un maximum de 5 Mo/s. Cela est utile lorsque vous ne souhaitez pas saturer la connexion réseau.

Q4. Je veux voir ce qui se passera avant l’exécution. Comment ?

A4. En utilisant l’option --dry-run (ou -n), le transfert est simulé sans réellement déplacer aucun fichier. Elle vous montre exactement ce qui se passerait.

rsync -av --dry-run /source/ /destination/

Cette étape de vérification est extrêmement importante lors de la première utilisation de rsync ou lors d’opérations incluant --delete.

Q5. Les fichiers cachés (fichiers commençant par un point) sont‑ils copiés ?

A5. Oui, rsync inclut par défaut les fichiers commençant par un point (.) dans la cible de copie. Cependant, si vous souhaitez exclure des fichiers cachés spécifiques, vous devrez ajouter une règle d’exclusion comme --exclude '.*'.

Q6. Quelle est la différence entre rsync et scp ?

A6. scp est un outil axé sur le transfert de fichiers simple et transfère tous les fichiers à chaque fois. rsync est capable de transfert différentiel, copiant efficacement uniquement les parties qui ont changé, ce qui le rend plus adapté aux sauvegardes et à la réplication. Il est également plus robuste pour reprendre les transferts interrompus.

9. Conclusion

Dans cet article, nous avons abordé un large éventail de sujets concernant rsync sur Ubuntu, des méthodes d’installation et de l’utilisation de base à la synchronisation avec des serveurs distants, les options utiles, l’utilisation de l’outil graphique « Grsync », le dépannage et les FAQ.

Récapitulatif de l’intérêt de rsync

  • Transfert différentiel rapide évite le transfert de données inutile.
  • Permet les sauvegardes et la duplication tout en préservant les permissions et la propriété.
  • Prend en charge la synchronisation à distance et peut être utilisé en toute sécurité avec SSH.
  • Options riches permettent un contrôle fin pour diverses situations, comme les paramètres d’exclusion et les limites de bande passante.
  • Peut être intégré à cron pour obtenir une automatisation et une exécution périodique.
  • L’outil graphique Grsync facilite l’utilisation en toute confiance pour les débutants.

rsync est un « outil essentiel pour les utilisateurs Linux »

Dans les environnements Linux, y compris Ubuntu, rsync est un outil fondamental pour les opérations sur les fichiers, les sauvegardes et la synchronisation. Même pour les débutants, s’exercer avec le contenu présenté dans cet article devrait vous permettre d’utiliser rsync en toute sécurité et efficacité.

De plus, bien que rsync possède une syntaxe simple, le maîtriser permet une gestion de fichiers de niveau professionnel. Commencez par assimiler les bases, puis, au besoin, intégrez des options avancées pour trouver la manière optimale d’utiliser rsync dans votre propre environnement.