Commande rsync sous Linux : options | exemples d'utilisation

Mention d'affiliation v3.1
Mention d'affiliation v3.2 (mobile)
Environnement de testFamille RHELAlmaLinux 9.8Compte rootVérifié le 2026-10-07

Si vous recopiez tout un dossier à chaque fois pour synchroniser deux serveurs, le volume transféré reste celui du dossier entier, même si un seul fichier a changé. La commande rsync, abréviation de remote sync, compare la source et la destination et ne transfère que les fichiers qui diffèrent ; elle fonctionne de la même façon entre des dossiers locaux et entre des serveurs reliés en SSH. Cet article présente l'utilisation de base, les options et des exemples des deux modes de connexion : SSH et démon rsync.

Les sorties de cet article viennent de rsync 3.2.7 sous AlmaLinux 9.8. S'il n'est pas installé, installez-le avec le gestionnaire de paquets.

# Famille RHEL
dnf -y install rsync
# Famille Debian
apt -y install rsync

✅ Utilisation de base

La syntaxe de base est la suivante.

rsync -options Origine destination

Comme avec la commande cp, on écrit d'abord la source, puis la destination. Avec une barre oblique [/] à la fin de la source, seul le contenu du dossier arrive dans la destination ; sans elle, c'est le dossier lui-même qui y est copié.

~]# rsync -av www/ backup/
sending incremental file list
index.html
img/
img/logo.png
~]# rsync -av www backup/
sending incremental file list
www/
www/index.html
www/img/
www/img/logo.png

Si vous relancez la même commande, la liste des fichiers est vide et les octets envoyés (sent) tombent à quelques centaines : les fichiers de même taille et de même date de modification sont ignorés.

~]# rsync -av www/ backup/
sending incremental file list

sent 166 bytes  received 13 bytes  358.00 bytes/sec
total size is 3,015  speedup is 16.84

Avec -r seul, sans -a, les dates de modification ne sont pas conservées, et l'exécution suivante renvoie les mêmes fichiers. Pour synchroniser des dossiers, ajoutez -a par défaut.

L'option -n affiche seulement les fichiers qui changeraient, sans rien transférer, et [(DRY RUN)] apparaît à la fin du résultat. Les options qui suppriment des fichiers de la destination, comme -⁠-delete, se vérifient d'abord avec -n avant d'être exécutées.

~]# rsync -avn --delete www/ backup/
sending incremental file list
deleting old.bak
index.html

sent 188 bytes  received 39 bytes  454.00 bytes/sec
total size is 3,013  speedup is 13.27 (DRY RUN)

✅ Options de la commande rsync & simulateur

OptionDescription
-a--archiveCopie aussi les sous-répertoires en conservant droits, propriétaire, date de modification et liens symboliques (équivaut à -rlptgoD)
-v--verboseAffiche le nom des fichiers transférés et le volume transféré
-z--compressCompresse les données des fichiers pendant le transfert
-r--recursiveCopie aussi les sous-répertoires (inclus dans -a)
-t--timesConserve la date de modification (inclus dans -a). C'est sur elle que se décide quels fichiers sont ignorés à l'exécution suivante
-n--dry-runAffiche seulement les fichiers qui changeraient, sans transfert, et marque la fin avec (DRY RUN)
-u--updateIgnore les fichiers plus récents côté destination
-h--human-readableAffiche les nombres d'octets en K, M et G
-PÉquivaut à --partial --progress. Affiche la progression de chaque fichier et reprend les transferts interrompus
-i--itemize-changesAffiche par des symboles ce qui a changé pour chaque fichier>f+++++++++ nouveau fichier · >f.st.⁠.⁠.⁠.⁠.⁠. taille et date modifiées · *deleting supprimé
-e--rsh=COMMANDIndique le shell distant-e 'ssh -p 2222 -i /root/.ssh/key.pem'
--deleteSupprime de la destination les fichiers absents de la source (nécessite -r ou -a)
--exclude=PATTERNExclut les fichiers et répertoires qui correspondent au motif--exclude '*.tmp' --exclude 'cache/'
--include=PATTERNPlacé avant --exclude, retire seulement ce motif de l'exclusion
--max-size=SIZENe transfère pas les fichiers plus gros que la taille indiquée (--min-size pour les plus petits)--max-size=3M --min-size=10k
--bwlimit=RATELimite la vitesse de transfert, en KiB/s
--statsAffiche les statistiques du nombre de fichiers et du volume transféré
Simulateur de commandes rsyncrsync 3.2.7
[root@server work]#
Fonctionne uniquement dans votre navigateur et ne touche à aucun vrai fichier. Le dossier www est la source et le dossier backup la dernière sauvegarde : tapez rsync en changeant les options, puis vérifiez le résultat avec ll, cat et diff. Une adresse distante (user@host:chemin) n'est acceptée que pour la syntaxe, sans connexion. Cliquez sur [Recommencer] pour annuler les modifications. Les flèches ↑↓ du clavier rappellent les commandes précédentes, et uknew help affiche les commandes disponibles.

✅ Modes de connexion : SSH et démon rsync

Pour synchroniser avec un serveur distant, il existe deux modes de connexion. Un seul deux-points [:] après l'hôte passe par SSH ; deux deux-points [::] se connectent directement au démon rsync sur le port 873.

TypePar SSH (:)Par le démon rsync (::)
Syntaxersync -options user@host:/chemin /chemin/localrsync -options host::module/chemin /chemin/local
PortPort SSH (22 par défaut)873
ChiffrementChiffré par SSHAucun chiffrement
AuthentificationClé SSH ou mot de passehosts allow dans rsyncd.conf, compte et mot de passe en option
Configuration côté serveurAucune (fonctionne dès que l'accès SSH est possible)Installer rsync-daemon, /etc/rsyncd.conf, ouvrir le port 873
UsageSauvegarde et déploiement entre serveurs (choix par défaut)Miroir sur le réseau interne sans donner de compte SSH

🔲 Par SSH

Si le serveur est accessible en SSH, vous pouvez utiliser rsync tout de suite, sans configuration côté serveur. Avec un autre port ou un fichier de clé, placez la commande ssh telle quelle dans l'option -e.

# local → distant
rsync -avz /home/2server_data/ root@192.168.45.239:/home/1server_data/
# distant → local
rsync -avz root@192.168.45.239:/home/1server_data/html_Remote /home/2server_data
# Port SSH et fichier de clé
rsync -avz -e 'ssh -p 2222 -i /root/.ssh/key.pem' root@192.168.45.239:/home/1server_data/ /home/2server_data
Commande rsync : résultat du distant vers le local

Pour exclure certains fichiers ou répertoires, ajoutez un -⁠-exclude par motif, ou regroupez les motifs entre accolades en une seule fois.

rsync -avz --exclude 'html_Remote_Excertion' --exclude 'Exception_File' root@192.168.45.239:/home/1server_data/ /home/2server_data
rsync -avz --exclude={'html_Remote_excertion/*','Exception_File'} root@192.168.45.239:/home/1server_data/ /home/2server_data
Commande rsync : du distant vers le local, en excluant certains fichiers et répertoires

🔲 Par le démon rsync

Le démon rsync autorise l'accès par module sur le port 873 sans compte SSH. La communication n'est pas chiffrée : on l'utilise donc entre serveurs d'un même réseau interne.

Sous AlmaLinux 9, installez le paquet rsync-daemon et démarrez le service. Sur un serveur qui utilise firewalld, ouvrez le port 873 ; sur un serveur cloud, ouvrez-le dans le pare-feu de la console. La méthode xinetd utilisée jusqu'à RHEL 8 a disparu dans la version 9.

dnf -y install rsync-daemon
systemctl enable --now rsyncd
firewall-cmd --permanent --add-port=873/tcp
firewall-cmd --reload

Dans le fichier de configuration [/etc/rsyncd.conf], indiquez le nom du module, son chemin et les hôtes autorisés. Avec read only à yes, les clients distants ne peuvent que télécharger.

[myhome]
path = /home
uid = root
gid = root
use chroot = yes
read only = yes
hosts allow = 192.168.45.182
max connections = 3
timeout = 30

Côté distant, si vous n'écrivez que deux deux-points après l'hôte, la liste des modules s'affiche ; avec le nom du module, c'est la liste des fichiers qu'il contient.

~]# rsync 192.168.45.239::
myhome
home
~]# rsync 192.168.45.239::myhome
drwxr-xr-x          4,096 2025/06/12 22:14:39 .
drwxr-xr-x          4,096 2025/06/12 22:21:10 1server_data
drwxr-xr-x          4,096 2025/06/12 22:14:39 2server_data

La copie se fait au format [hôte::module/chemin]. -⁠-delete supprime de la destination les fichiers absents de la source, et -⁠-include retire de l'exclusion seulement les éléments placés avant -⁠-exclude.

~]# rsync -avz 192.168.45.239::myhome/1server_data/ /home/2server_data/
receiving incremental file list
./
Exception_File
html_Remote/
html_Remote_Excertion/

sent 58 bytes  received 332 bytes  780.00 bytes/sec
total size is 442  speedup is 1.13
~]# rsync -avz --delete 192.168.45.239::myhome/1server_data/ /home/2server_data/
~]# rsync -avz --include '*.html' --exclude 'exclude.txt' 192.168.45.239::myhome/1server_data/ /home/2server_data/
Commande rsync : du distant vers le local avec l'option delete
Commande rsync : du distant vers le local avec les options delete, include et exclude

Sur un serveur où SELinux est actif, l'accès au chemin du module peut être bloqué avec [Permission denied (13)]. Pendant le test, cela a fonctionné après avoir désactivé SELinux avec [setenforce 0].

~]# rsync -avz 192.168.45.239::myhome/1server_data/ /home/2server_data/
receiving incremental file list
rsync: change_dir "/1server_data" (in myhome) failed: Permission denied (13)
sent 8 bytes  received 90 bytes  65.33 bytes/sec
total size is 0  speedup is 0.00
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1658) [Receiver=3.1.2]

-⁠-bwlimit limite la vitesse de transfert en KiB/s, et -P affiche en plus la progression de chaque fichier. -⁠-max-size et -⁠-min-size ne transfèrent que les fichiers dans la plage de tailles indiquée.

rsync -avzP --bwlimit=100 192.168.45.239::myhome/1server_data/ /home/2server_data/
rsync -avz --max-size='3M' --min-size='10k' 192.168.45.239::myhome/1server_data/ /home/2server_data/
Commande rsync : du distant vers le local, bande passante limitée à 100 kb et progression affichée avec -P

ℹ️ Mention d'affiliation
Le contenu de ce site contient des liens d'affiliation. Lorsqu'un visiteur achète un produit ou un service via l'un de ces liens, le site perçoit une commission du vendeur. Le montant payé par l'acheteur(il baisse lors des promotions ↓), lui, n'augmente pas. Les prix, remises et stocks indiqués correspondent à la date de rédaction et peuvent différer ; vérifiez-les donc auprès du vendeur avant d'acheter. Les produits sont choisis et évalués selon nos propres critères, et les commissions n'influencent ni l'ordre de présentation ni le contenu des évaluations.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Prouvez que vous êtes humain : 0   +   3   =