Rsync pour Linux : synchroniser, copier et sauvegarder des fichiers
9 min de lecture - 24 mai 2025

Comment utiliser rsync sous Linux pour les transferts incrémentiels, les synchronisations à distance via SSH, les sauvegardes planifiées avec cron, et comment éviter le piège de la barre oblique.
Rsync pour Linux : comment synchroniser, copier et sauvegarder des fichiers comme un pro
Rsync est l'outil standard pour copier des fichiers entre des systèmes Linux. Il est plus rapide que cp ou scp pour tout ce que vous exécutez plus d'une fois, il se remet des coupures de réseau et ne transfère que ce qui a réellement changé. Cet article explique ce que fait rsync, les options qu'il faut connaître, les exemples que vous utiliserez le plus souvent et comment le planifier avec cron.
Qu'est-ce que rsync ?
Rsync est un utilitaire en ligne de commande permettant de copier et de synchroniser des fichiers entre différents emplacements. Il fonctionne en local, via SSH vers un hôte distant, ou avec un démon rsync. La principale différence par rapport à cp ou scp: rsync compare d'abord la source et la destination, puis ne transfère que les différences. Sur un répertoire de 100 Go où 200 Mo ont été modifiés, rsync ne transfère que ces 200 Mo. cp et scp déplacent tout.
Il est fourni avec toutes les distributions Linux modernes. S'il manque : apt install rsync ou dnf install rsync.
Pourquoi utiliser rsync plutôt que cp ou scp
Trois raisons pour lesquelles rsync est préférable pour toute copie non triviale :
- Il est incrémental. Les exécutions suivantes ne transfèrent que les octets modifiés, et non les fichiers entiers. Pour les sauvegardes et les miroirs, cela transforme une tâche qui prendrait toute la nuit en quelques minutes.
- Il résiste aux interruptions. Avec
--partial, un fichier de 50 Go à moitié transféré reprend là où il s'était arrêté plutôt que de recommencer depuis le début. - Il préserve les métadonnées. Le mode archive (
-a) conserve les permissions, la propriété, les liens symboliques et les horodatages. C'est essentiel pour les fichiers système, les arborescences de sources et tout ce où les attributs ont de l'importance.
Pour les copies ponctuelles de petits fichiers, scp convient parfaitement. Pour tout ce qui est récurrent, tout ce qui nécessite une bande passante importante ou tout ce que vous pourriez avoir besoin de reprendre, utilisez rsync.
Indicateurs rsync courants
Les options que vous utiliserez réellement :
| Option | Fonction |
|---|---|
-a | Mode archive. Conserve les permissions, la propriété, les liens symboliques et les horodatages. Équivalent à -rlptgoD. |
-v | Verbose. Liste les fichiers en cours de transfert. |
-z | Compresse en transit. Utile sur les liaisons lentes ou coûteuses, moins utile sur un réseau local ou pour du contenu déjà compressé. |
-P | Combine --partial et --progress. Reprend les transferts interrompus, affiche la progression en temps réel. |
--delete | Supprime les fichiers de la destination qui n'existent pas sur la source. Requis pour un véritable miroir. |
--exclude | Ignore les fichiers correspondant à un motif. |
--exclude-from=FILE | Lire les modèles d'exclusion à partir d'un fichier. Plus propre que d'enchaîner plusieurs --exclude options. |
--dry-run | Afficher ce qui se passerait sans effectuer de transfert. |
--bwlimit=KBPS | Limiter l'utilisation de la bande passante en kilo-octets par seconde. Utile pour les sauvegardes qui s'exécutent pendant les heures de bureau. |
--checksum | Comparer les fichiers par somme de contrôle plutôt que par taille et date de modification. Plus lent, mais permet de détecter les cas limites. |
-e ssh | Utiliser SSH pour le transfert. Implicite sur la plupart des installations modernes. |
Par défaut, le système compare la taille des fichiers et la date de modification, ce qui est rapide et presque toujours correct. Passez à --checksum si un processus de déploiement réécrit les horodatages sans modifier le contenu, ou si vous soupçonnez une corruption au niveau des bits.
Exemples de rsync
Copier un répertoire localement :
rsync -av /source/path/ /destination/path/Synchroniser vers un serveur distant via SSH :
rsync -avz /local/dir/ user@remote:/remote/dir/Effectuer un test avant toute opération destructive :
rsync -avz --dry-run /local/dir/ user@remote:/dir/Mettre en miroir deux répertoires, y compris les suppressions sur la destination :
rsync -av --delete /source/ /destination/Exclure les journaux et un répertoire temporaire :
rsync -av --exclude='*.log' --exclude='tmp/' /src/ /dest/Reprendre un transfert volumineux susceptible d'être interrompu :
rsync -avP user@remote:/backups/big.img /local/Si la session SSH est interrompue, relancez la même commande. Avec -P, rsync reprend là où il s'était arrêté au lieu de repartir de zéro.
Limitez la bande passante à 50 Mo/s pour une sauvegarde hors heures de pointe afin de ne pas saturer la liaison montante :
rsync -avz --bwlimit=50000 /local/dir/ user@remote:/dir/Le piège de la barre oblique finale
L'erreur la plus courante avec rsync :
rsync -av /source /destination/ # copies the 'source' directory INTO /destination
rsync -av /source/ /destination/ # copies the CONTENTS of /source into /destinationUne barre oblique finale sur la source signifie « tout ce qui se trouve dans ce répertoire ». L'absence de barre oblique finale signifie « ce répertoire lui-même ». Utilisez d'abord --dry-run la première option si vous avez un doute, surtout lorsqu'elle est combinée avec --delete.
Automatisation de rsync avec cron
Pour les sauvegardes planifiées, vous avez besoin de trois éléments :
Un accès SSH sans mot de passe à la destination. Les tâches cron ne peuvent pas saisir de mots de passe. Générer une clé et la copier sur l'hôte de sauvegarde :
ssh-keygen -t ed25519 ssh-copy-id user@backup-hostUn script, et non une ligne de commande dans crontab. Plus facile à tester, plus facile à consigner :
#!/bin/bash LOG=/var/log/rsync-backup.log rsync -az --delete /etc/ user@backup:/backups/$(hostname)/etc/ >> "$LOG" 2>&1Rendez-le exécutable avec
chmod +x.Une entrée cron pour l'exécuter. Modifiez avec
crontab -e:0 2 * * * /usr/local/bin/rsync-backup.shCela exécute le script tous les soirs à 02h00.
Deux améliorations à apporter en production : encapsulez le script dans flock afin qu'une tâche de longue durée ne chevauche pas l'exécution de la nuit suivante, et redirigez la sortie via logger afin que les échecs soient consignés dans le journal système où la surveillance pourra les détecter.
Conclusion
Rsync est l'un des rares outils Linux pour lesquels le temps passé à apprendre les options est presque immédiatement rentabilisé. Les points principaux :
- Les transferts incrémentiels et la prise en charge de la reprise font de rsync le choix idéal pour tout ce que vous exécutez plus d'une fois
-aen mode archive,-zpour la compression,-Ppour la reprise et le suivi de la progression,--deletepour les véritables miroirs- Faites attention à la barre oblique finale dans le chemin d'accès source, en particulier avec
--delete - Associez-le à cron et aux clés SSH pour des sauvegardes planifiées sans intervention
Pour les tâches de sauvegarde volumineuses qui transfèrent des données entre des sites, l'exécution de rsync sur un VPS avec une bande passante illimitée signifie que les fenêtres de sauvegarde ne sont pas limitées par des plafonds de transfert.

Fatigue oculaire numérique : comment protéger votre vue dans un monde où l'on passe beaucoup de temps devant les écrans
Vous passez vos journées les yeux rivés sur un écran ? Découvrez comment réduire la fatigue oculaire liée à l'utilisation des écrans grâce à des techniques et des outils éprouvés. Ce guide est indispensable pour les télétravailleurs, les développeurs et tous les professionnels du secteur technologique.
4 min de lecture - 21 mai 2025
Pourquoi il est important de disposer d’un VPS puissant et illimité
8 min de lecture - 9 mai 2025