← Toutes les fiches

Transfert de fichiers Intermédiaire

Rsync, synchronisation incrémentale de fichiers

Transférer et synchroniser des fichiers localement ou à distance en n'envoyant que les portions modifiées.

Mis à jour le · 2 min de lecture

rsyncsynchronisationsshsauvegardedelta

Définition

rsync (Remote Sync) est un outil de synchronisation de fichiers et de dossiers en local ou à travers le réseau via SSH. Grâce à son algorithme « delta-transfer », il compare l’expéditeur et le destinataire pour ne transférer que les blocs d’octets réellement modifiés, ce qui le rend particulièrement rapide et économe en bande passante.

Le principe du transfert incrémental

Contrairement à une copie classique qui réécrit chaque fichier, rsync procède par étapes :

  1. Il compare les fichiers par taille et date de dernière modification.
  2. Si un fichier a changé, il découpe les données en blocs et calcule des sommes de contrôle pour n’expédier que les segments modifiés.
  3. Il conserve la structure, les permissions et les horodatages d’origine grâce au mode archive.

Mots-clés et options

OptionRôle
-aMode archive : récursif, préserve droits, propriétaires, dates et liens
-vMode verbeux : liste les fichiers traités
-zCompresse les données durant le transit réseau
-PCombine --progress (barre d’avancement) et --partial (reprise en cas de coupure)
--deleteSupprime de la cible les fichiers absents de la source (miroir parfait)
-n, --dry-runSimule l’opération sans écrire ni supprimer de fichier
-e sshPrécise le transport SSH et ses paramètres (ex. port non standard)

Le piège du slash final

La présence ou l’absence d’un slash / à la fin du chemin source modifie le comportement :

  • Avec slash (rsync -a source/ dest/) : copie le contenu du dossier source dans dest/.
  • Sans slash (rsync -a source dest/) : copie le dossier lui-même à l’intérieur de dest/ (dest/source/).

Exemples de code

1. Synchroniser un dossier vers un serveur distant

La combinaison classique -avzP assure un transfert compressé, préservant les droits, avec suivi de progression et reprise :

rsync -avzP ./build/ debian@serveur.example.com:/var/www/site/

2. Miroir exact avec simulation de sécurité

Lorsque l’on utilise --delete, il est recommandé de simuler l’action d’abord avec -n :

# 1. Simuler pour vérifier quels fichiers seraient supprimés
rsync -avP --delete -n ./documents/ /mnt/backup/documents/

# 2. Exécuter la commande réelle
rsync -avP --delete ./documents/ /mnt/backup/documents/

3. Utiliser un port SSH spécifique

rsync -avzP -e "ssh -p 2222" ./app/ debian@serveur.example.com:/opt/app/
La copie des exemples est disponible sur chaque bloc de code.

Lancer le quiz