Aller au contenu
Administration Linux medium

Synchroniser des fichiers avec rsync

26 min de lecture

Quand on sauvegarde des serveurs, déploie des applications ou synchronise des dossiers entre machines, rsync est l'outil de référence. Contrairement à cp ou scp, rsync ne transfère que les différences : si 1% d'un fichier a changé, seul ce 1% traverse le réseau. Résultat : des sauvegardes rapides, reprises possibles si coupure, et un contrôle fin sur ce qui est copié.

  • Synchroniser des dossiers en local avec -avz
  • Transférer vers/depuis un serveur distant via SSH
  • Exclure des fichiers avec --exclude et --exclude-from
  • Utiliser --delete pour un miroir exact (avec précautions)
  • Créer des sauvegardes incrémentielles avec --link-dest

rsync fait partie des outils de transfert et de sauvegarde sous Linux. Chaque outil a sa spécialité :

CommandeSpécialitéQuand l'utiliser
rsyncSynchronisation intelligente (delta)Sauvegardes, déploiements, gros fichiers
cpCopie locale simpleFichiers ponctuels, scripts simples
scpCopie distante via SSHTransfert rapide one-shot
tarArchivage avec compressionCréer des archives, backups complets
ddCopie bit-à-bitImages disques, clonage bas niveau

Quand utiliser rsync plutôt que les autres :

SituationMeilleur outilPourquoi
Sauvegarde quotidiennersyncNe transfère que les changements
Copie d'un fichier vers serveurscp ou rsyncscp plus simple, rsync reprend si coupé
Synchronisation bi-directionnelleunisonrsync est unidirectionnel
Cloner un disqueddCopie bit-à-bit exacte
Archive compressée à envoyertar + sshUn seul fichier à transférer

Combinaisons fréquentes :

Fenêtre de terminal
# rsync + cron : sauvegarde automatique quotidienne
0 2 * * * rsync -avz --delete /data/ backup-srv:/backups/
# rsync + find : sauvegarder uniquement les fichiers modifiés récemment
find /data -mtime -1 -type f -exec rsync -av {} backup:/ \;
# rsync + ssh personnalisé : port non standard
rsync -avz -e "ssh -p 2222" source/ user@server:/dest/

🧠 Modèle mental — Comment fonctionne rsync

rsync = Source → [Filtres] → Destination (ne transfère que les différences)

Modèle mental rsync : Source → Filtres → Destination (ne transfère que les différences)

Points clés

  • rsync compare les fichiers par taille et date (ou checksum avec -c)
  • Seuls les blocs modifiés sont transférés (algorithme delta)
  • Le slash final sur la source change tout : /source/ ≠ /source
  • Mode archive (-a) préserve permissions, dates, liens symboliques
  • Toujours tester avec --dry-run avant --delete
  • SSH est le transport par défaut pour les transferts distants

Règles d'or

1
Toujours tester avec --dry-run avant d'exécuter Surtout avec --delete qui supprime des fichiers sur la destination.
2
Attention au slash final sur la source /source/ copie le contenu, /source copie le dossier lui-même.

Vocabulaire essentiel

-a (archive)
Préserve permissions, dates, liens, récursif
-v (verbose)
Affiche les fichiers traités
-z (compress)
Compresse les données pendant le transfert
-n (dry-run)
Simule sans rien modifier
--delete
Supprime les fichiers absents de la source
--progress
Affiche la progression du transfert
📚 Pour aller plus loin — 12 options avancées
--exclude
Exclure des fichiers/dossiers par pattern
--exclude-from
Lire les exclusions depuis un fichier
--include
Inclure explicitement (priorité sur exclude)
--partial
Conserver les fichiers partiellement transférés
--append
Reprendre un transfert interrompu
--bwlimit
Limiter la bande passante (Ko/s)
--link-dest
Sauvegardes incrémentielles avec liens durs
-e ssh
Spécifier la commande SSH (port, clé...)
--inplace
Modifier les fichiers sur place (risqué)
-c (checksum)
Comparer par checksum au lieu de taille/date
--ignore-errors
Continuer malgré les erreurs
-P
Équivalent à --partial --progress

L'algorithme delta : rsync divise les fichiers en blocs, calcule des checksums, et ne transfère que les blocs modifiés. Sur un fichier de 1 Go modifié à 1%, seuls ~10 Mo transitent.

Fenêtre de terminal
rsync [OPTIONS] SOURCE DESTINATION
ScénarioSyntaxeExemple
Local → Localrsync source/ dest/rsync -av ~/docs/ /backup/docs/
Local → Distantrsync source/ user@srv:dest/rsync -avz ~/data/ admin@srv:/backup/
Distant → Localrsync user@srv:source/ dest/rsync -avz srv:/logs/ ~/local-logs/

C'est la source d'erreur n°1 avec rsync :

CommandeRésultat
rsync -av source dest/Crée dest/source/... (copie le dossier)
rsync -av source/ dest/Copie le contenu dans dest/...

Règle simple : slash sur source = copie le contenu. Pas de slash = copie le dossier.

/backup/projet/src/...
rsync -av ~/projet /backup/
# ✅ Résultat : /backup/src/... (contenu directement)
rsync -av ~/projet/ /backup/
OptionSignificationUsage
-aArchiveMode standard : récursif + préserve permissions, dates, liens
-vVerboseAffiche les fichiers traités
-zCompressCompresse pendant le transfert (utile en réseau)
-nDry-runSimule sans modifier (⚠️ indispensable avant --delete)
-PProgress + PartialAffiche progression + conserve fichiers partiels
--deleteSupprimerSupprime de dest ce qui n'existe plus dans source

La combo standard :

Fenêtre de terminal
# Sauvegarde locale basique
rsync -av ~/Documents/ /media/backup/Documents/
# Transfert distant avec compression
rsync -avz ~/projet/ deployer@prod:/var/www/app/
# Test avant suppression
rsync -avn --delete ~/master/ /backup/mirror/

Deux méthodes pour ignorer certains fichiers :

Méthode 1 : options --exclude

Fenêtre de terminal
rsync -av --exclude '*.log' --exclude 'cache/' source/ dest/

Méthode 2 : fichier d'exclusions

Fenêtre de terminal
# Créer un fichier .rsyncignore
cat > .rsyncignore << 'EOF'
*.log
*.tmp
cache/
.git/
node_modules/
EOF
# Utiliser le fichier
rsync -av --exclude-from=.rsyncignore source/ dest/

⚠️ Ordre des règles : --include doit venir AVANT --exclude :

Fenêtre de terminal
# ❌ INCORRECT : exclude * matche tout avant include
rsync -av --exclude '*' --include '*.txt' source/ dest/
# ✅ CORRECT : include d'abord
rsync -av --include '*.txt' --exclude '*' source/ dest/

L'option --delete rend la destination identique à la source en supprimant les fichiers qui n'existent plus côté source.

⚠️ DANGER : sans test, vous pouvez perdre des données !

Fenêtre de terminal
# Étape 1 : TOUJOURS prévisualiser
rsync -avn --delete ~/source/ /backup/mirror/
# Vérifier la liste des fichiers qui seraient supprimés
# Étape 2 : exécuter seulement si la liste est correcte
rsync -av --delete ~/source/ /backup/mirror/

Variantes de --delete :

OptionComportement
--deleteSupprime avant le transfert
--delete-afterSupprime après le transfert (plus sûr)
--delete-excludedSupprime aussi les fichiers exclus

SSH est le transport par défaut pour les transferts distants :

Fenêtre de terminal
# Syntaxe de base
rsync -avz source/ user@serveur:/chemin/dest/
# Récupérer depuis un serveur
rsync -avz user@serveur:/var/log/ ~/logs-serveur/

SSH personnalisé (port différent, clé spécifique) :

Fenêtre de terminal
# Port SSH non standard
rsync -avz -e "ssh -p 2222" source/ user@srv:/dest/
# Clé SSH spécifique
rsync -avz -e "ssh -i ~/.ssh/backup_key" source/ backup@srv:/data/
# Combiné
rsync -avz -e "ssh -p 2222 -i ~/.ssh/backup_key" source/ user@srv:/dest/

Pour les gros fichiers ou connexions instables :

Fenêtre de terminal
# -P = --partial + --progress
# --partial conserve les fichiers partiellement transférés
rsync -avP grosfichier.iso user@serveur:/data/
# Limiter la bande passante (en Ko/s)
rsync -avz --bwlimit=1000 source/ user@serveur:/dest/
# Reprendre un transfert coupé
rsync -avP --append source/ dest/

--link-dest crée des sauvegardes qui semblent complètes mais n'utilisent de l'espace que pour les fichiers modifiés :

Fenêtre de terminal
# Structure de sauvegardes
/backup/
├── 2024-01-01/ # Sauvegarde complète
├── 2024-01-02/ # Liens durs vers 2024-01-01 + nouveaux fichiers
└── 2024-01-03/ # Liens durs vers 2024-01-02 + nouveaux fichiers
# Commande
rsync -av --link-dest=/backup/2024-01-01 ~/data/ /backup/2024-01-02/

Script de sauvegarde incrémentielle :

#!/bin/bash
BACKUP_DIR="/backup"
SOURCE="/home/user/data"
TODAY=$(date +%Y-%m-%d)
YESTERDAY=$(date -d "yesterday" +%Y-%m-%d)
# Créer la sauvegarde en utilisant l'ancienne comme référence
rsync -av --link-dest="$BACKUP_DIR/$YESTERDAY" \
"$SOURCE/" "$BACKUP_DIR/$TODAY/"

Économie d'espace : si vous avez 100 Go de données et 1% change par jour, une semaine de sauvegardes n'utilise que ~107 Go au lieu de 700 Go.

Exemple de sauvegarde quotidienne :

Fenêtre de terminal
# Éditer la crontab
crontab -e
# Ajouter (sauvegarde à 2h du matin)
0 2 * * * rsync -avz --delete /data/ backup-server:/backups/$(date +\%Y-\%m-\%d)/ >> /var/log/rsync-backup.log 2>&1

Script complet avec rotation :

#!/bin/bash
# backup.sh - Sauvegarde avec rotation sur 7 jours
REMOTE="backup@srv:/backups"
SOURCE="/home/user/data"
LOG="/var/log/rsync-backup.log"
echo "=== Backup started: $(date) ===" >> $LOG
# Sauvegarde
rsync -avz --delete "$SOURCE/" "$REMOTE/current/" >> $LOG 2>&1
# Rotation (garder 7 jours)
ssh backup@srv 'cd /backups && rm -rf day.7 && \
mv day.6 day.7 && mv day.5 day.6 && mv day.4 day.5 && \
mv day.3 day.4 && mv day.2 day.3 && mv day.1 day.2 && \
cp -al current day.1'
echo "=== Backup completed: $(date) ===" >> $LOG

Maintenant que vous maîtrisez les bases, voici des recettes prêtes à l'emploi pour les cas d'usage fréquents. Chacune combine une formule générique et un exemple concret que vous pouvez adapter à votre contexte.

Copier et mettre à jour un dossier vers un autre sur la même machine. C'est le socle de toute sauvegarde locale.

Fenêtre de terminal
# Formule
rsync -av <source>/ <destination>/
# Exemple
rsync -av ~/Documents/ /media/backup/Documents/
  • -a : mode archive — récursif et préserve permissions, dates, liens.
  • -v : verbose — affiche les fichiers traités.

Transférer des fichiers vers un serveur via SSH, typiquement pour un déploiement d'application.

Fenêtre de terminal
# Formule
rsync -avz <source>/ user@serveur:<destination>/
# Exemple
rsync -avz ~/projet/ deployer@prod:/var/www/app/
  • -z : compresse les données pendant le transfert.
  • user@serveur: : ouvre une connexion SSH vers la destination.

L'opération inverse : télécharger des fichiers depuis un serveur vers la machine locale.

Fenêtre de terminal
# Formule
rsync -avz user@serveur:<source>/ <destination>/
# Exemple
rsync -avz root@backup:/var/backups/ ~/local-backups/
  • user@serveur: : désigne ici la source distante.
  • <destination>/ : le dossier local qui reçoit les fichiers.

Rendre la destination strictement identique à la source, suppressions comprises. À tester impérativement avec --dry-run avant exécution réelle.

Fenêtre de terminal
# Formule
rsync -av --delete <source>/ <destination>/
# Exemple
rsync -av --delete ~/master/ /media/usb/mirror/
  • --delete : supprime de la destination les fichiers absents de la source.

Ignorer certains fichiers pendant la synchronisation — caches, journaux, dossiers de build.

Fenêtre de terminal
# Formule
rsync -av --exclude "pattern" <source>/ <destination>/
# Exemple
rsync -av --exclude "*.log" --exclude ".git/" src/ backup/
  • --exclude : motif glob à exclure, peut être répété.
  • --exclude-from : lit les exclusions depuis un fichier dédié.

Gérer un grand nombre d'exclusions de façon maintenable en les centralisant dans un fichier.

Fenêtre de terminal
# Formule
rsync -av --exclude-from=<fichier> <source>/ <destination>/
# Exemple
rsync -av --exclude-from=.rsyncignore ~/projet/ /backup/
  • --exclude-from : chemin du fichier listant les motifs, un par ligne.

Créer des sauvegardes datées qui économisent l'espace grâce aux liens durs : seuls les fichiers modifiés occupent réellement de la place.

Fenêtre de terminal
# Formule
rsync -av --link-dest=<backup-précédent> <source>/ <backup-nouveau>/
# Exemple
rsync -av --link-dest=/backup/2024-01-01 ~/data/ /backup/2024-01-02/
  • --link-dest : sauvegarde de référence pour les liens durs.

Continuer un transfert coupé sans tout recommencer — indispensable sur les gros fichiers et les connexions instables.

Fenêtre de terminal
# Formule
rsync -avP <source>/ <destination>/
# Exemple
rsync -avP grosfichier.iso user@serveur:/data/
  • -P : équivalent à --partial --progress.
  • --partial : conserve les fichiers partiellement transférés.

Synchroniser sans saturer la connexion réseau, par exemple pendant les heures ouvrées.

Fenêtre de terminal
# Formule
rsync -avz --bwlimit=<KBPS> <source>/ <destination>/
# Exemple
rsync -avz --bwlimit=1000 ~/data/ backup-server:/data/
  • --bwlimit : limite la bande passante en Ko/s.

Utiliser un port SSH non standard ou une clé privée dédiée à la sauvegarde.

Fenêtre de terminal
# Formule
rsync -avz -e "ssh -p <port> -i <clé>" <source>/ user@serveur:<dest>/
# Exemple
rsync -avz -e "ssh -p 2222 -i ~/.ssh/backup_key" ~/data/ backup@srv:/data/
  • -e : commande de shell distant à utiliser.
  • -p : port SSH ; -i : fichier de clé privée.

Ces erreurs reviennent constamment avec rsync. Les connaître à l'avance vous évite des pertes de données et des heures de diagnostic.

Fenêtre de terminal
rsync -av /source /destination

Symptôme : un dossier source/ inattendu apparaît dans destination/.

Cause : sans slash final, rsync copie le dossier lui-même ; avec slash, il copie son contenu.

Fenêtre de terminal
rsync -av /source/ /destination/
Fenêtre de terminal
rsync -av --delete source/ dest/

Symptôme : des fichiers importants disparaissent de la destination.

Cause : --delete supprime tout ce qui n'est pas présent dans la source — une erreur de chemin devient destructrice.

Fenêtre de terminal
rsync -av --delete --dry-run source/ dest/ # vérifier, puis relancer sans --dry-run
Fenêtre de terminal
rsync -av --delete backup/ source/

Symptôme : les fichiers de travail sont écrasés par une vieille sauvegarde.

Cause : confusion entre source et destination — rsync copie toujours ce qui est à gauche vers ce qui est à droite.

Fenêtre de terminal
rsync -av source/ backup/
Fenêtre de terminal
rsync -av --exclude "*" --include "*.txt" source/ dest/

Symptôme : aucun fichier n'est copié malgré le --include.

Cause : rsync applique les règles dans l'ordre ; --exclude "*" capture tout avant que --include ne soit évalué.

Fenêtre de terminal
rsync -av --include "*.txt" --exclude "*" source/ dest/
Fenêtre de terminal
rsync -av ~/files/ /backup/

Symptôme : message Permission denied ou attributs non préservés.

Cause : l'utilisateur courant n'a pas les droits d'écriture, ou ne peut pas appliquer le propriétaire d'origine (chown).

Fenêtre de terminal
rsync -av --no-owner --no-group source/ dest/
Fenêtre de terminal
rsync -av user@srv:/path/with spaces/ local/

Symptôme : erreur de syntaxe ou fichiers inattendus.

Cause : le shell interprète l'espace comme un séparateur d'arguments.

Fenêtre de terminal
rsync -av "user@srv:/path/with\ spaces/" local/

Ce lab vous fait manipuler rsync sur une arborescence réelle, de la synchronisation basique à la sauvegarde incrémentielle. Comptez 15 minutes.

Le script suivant crée une arborescence de test avec des fichiers de tailles et de dates variées :

Fenêtre de terminal
# Créer le lab
mkdir -p ~/rsync-lab/{source,backup,remote-sim}
cd ~/rsync-lab/source
# Créer des fichiers variés
echo "Configuration principale" > config.conf
echo "Application logs" > app.log
dd if=/dev/zero of=data.bin bs=1M count=5 2>/dev/null
mkdir -p docs
echo "Documentation" > docs/readme.md
echo "Notes" > docs/notes.txt
# Fichiers à exclure
echo "Temporaire" > temp.tmp
mkdir -p cache
echo "Cache data" > cache/data.cache
# Fichier avec espace dans le nom
echo "Rapport important" > "rapport 2024.pdf"
# Fichier ancien
touch -d "30 days ago" docs/old-doc.md
echo "Lab créé dans ~/rsync-lab"
ls -laR ~/rsync-lab/source

Pour tout nettoyer à la fin : rm -rf ~/rsync-lab.

  1. Synchronisation basique — copiez le contenu de source/ vers backup/ en mode archive : rsync -av ~/rsync-lab/source/ ~/rsync-lab/backup/. Tous les fichiers sont copiés avec leurs attributs préservés.

  2. Test avec --dry-run — simulez une synchronisation avec --delete sans rien modifier : rsync -av --delete --dry-run ~/rsync-lab/source/ ~/rsync-lab/backup/. La sortie affiche ce qui serait fait, sans toucher aux fichiers.

  3. Exclure des fichiers — synchronisez en ignorant les .tmp et le dossier cache/ : rsync -av --exclude "*.tmp" --exclude "cache/" ~/rsync-lab/source/ ~/rsync-lab/backup/. temp.tmp et cache/ ne sont pas copiés.

  4. Miroir exact avec --delete — créez un fichier orphelin puis synchronisez : touch ~/rsync-lab/backup/fichier-orphelin.txt suivi de rsync -av --delete ~/rsync-lab/source/ ~/rsync-lab/backup/. Le fichier orphelin est supprimé car absent de la source.

  5. Transfert distant (simulé en local) — utilisez la compression : rsync -avz ~/rsync-lab/source/ ~/rsync-lab/remote-sim/. Pour un vrai serveur, la destination serait user@serveur:/chemin/ — et avec un port SSH personnalisé : rsync -avz -e "ssh -p 2222" source/ user@serveur:/backup/.

  6. Afficher la progression — synchronisez data.bin avec la barre de progression : rsync -av --progress ~/rsync-lab/source/data.bin ~/rsync-lab/backup/. Taille, vitesse et pourcentage s'affichent pendant le transfert.

  7. Limiter la bande passante — transférez data.bin à 500 Ko/s maximum : rsync -avz --bwlimit=500 ~/rsync-lab/source/data.bin ~/rsync-lab/backup/. Le transfert est plafonné, utile pour ne pas saturer le réseau.

  8. Sauvegarde incrémentielle — créez une sauvegarde avec liens durs vers la précédente : rsync -av --link-dest=../backup ~/rsync-lab/source/ ~/rsync-lab/backup-new/. Les fichiers inchangés deviennent des liens durs, ce qui économise l'espace disque.

Ces exercices vont du réflexe de base à la sauvegarde professionnelle. Lisez l'énoncé, cherchez la commande, puis dépliez la solution pour vérifier.

Exercice 1 — Première synchronisation. Synchronisez le dossier ~/Documents vers /media/backup/Documents en préservant les attributs.

Indice : -a pour archive, -v pour voir ce qui se passe.

Voir la solution
Fenêtre de terminal
rsync -av ~/Documents/ /media/backup/Documents/

-a préserve tout (permissions, dates, liens). N'oubliez pas le slash final sur la source.

Exercice 2 — Test avant exécution. Simulez une synchronisation avec --delete sans rien modifier.

Indice : --dry-run (ou -n) simule sans modifier.

Voir la solution
Fenêtre de terminal
rsync -av --delete --dry-run ~/source/ ~/backup/

--dry-run est essentiel avant toute commande --delete : il montre l'impact réel sans risque.

Exercice 3 — Exclusion de fichiers. Synchronisez en excluant tous les fichiers .log et le dossier cache/.

Indice : --exclude peut être utilisé plusieurs fois.

Voir la solution
Fenêtre de terminal
rsync -av --exclude "*.log" --exclude "cache/" ~/source/ ~/backup/

--exclude accepte des motifs glob et se répète autant de fois que nécessaire.

Exercice 4 — Transfert vers serveur distant. Envoyez le dossier ~/projet vers user@serveur:/var/www/app avec compression.

Indice : -z active la compression, utile sur le réseau.

Voir la solution
Fenêtre de terminal
rsync -avz ~/projet/ user@serveur:/var/www/app/

-z compresse les données pendant le transfert. SSH est le transport par défaut.

Exercice 5 — Miroir exact. Créez un miroir exact de ~/master vers /backup/mirror en supprimant les fichiers obsolètes.

Indice : --delete supprime ce qui n'existe plus dans la source.

Voir la solution
Fenêtre de terminal
rsync -av --delete ~/master/ /backup/mirror/

--delete rend la destination identique à la source. Testez toujours avec --dry-run d'abord.

Exercice 6 — SSH avec port personnalisé. Synchronisez vers un serveur qui utilise le port SSH 2222.

Indice : -e permet de spécifier la commande SSH.

Voir la solution
Fenêtre de terminal
rsync -avz -e "ssh -p 2222" ~/data/ user@serveur:/backup/

-e "ssh -p 2222" change le port. La même syntaxe accepte -i pour une clé privée dédiée.

Exercice 7 — Transfert avec reprise. Transférez un gros fichier avec possibilité de reprise si la connexion est coupée.

Indice : -P combine --partial et --progress.

Voir la solution
Fenêtre de terminal
rsync -avP grosfichier.iso user@serveur:/data/

-P conserve les fichiers partiels et affiche la progression : le transfert reprend où il s'était arrêté.

Exercice 8 — Sauvegarde incrémentielle. Créez une sauvegarde datée utilisant des liens durs vers la précédente.

Indice : --link-dest référence la sauvegarde précédente.

Voir la solution
Fenêtre de terminal
rsync -av --link-dest=/backup/2024-01-01 ~/data/ /backup/2024-01-02/

--link-dest économise énormément d'espace : seuls les fichiers modifiés sont réellement dupliqués.

Quand un transfert échoue ou se comporte mal, ces méthodes de diagnostic et ces erreurs fréquentes couvrent la grande majorité des cas.

Fenêtre de terminal
# Simuler sans rien modifier
rsync -av --dry-run source/ dest/
# Mode très verbeux : tous les détails
rsync -avvv source/ dest/
# Tester la connexion SSH avant rsync
ssh -v user@serveur "ls /chemin/"
# Afficher les statistiques de transfert
rsync -av --stats source/ dest/
ErreurCause probableSolution
mkstemp ... failed: Permission deniedPas de droits d'écriture sur la destination, ou SELinux/AppArmor bloqueUtiliser sudo ou ajuster les permissions du dossier destination
failed to connect to serveur: Connection refusedsshd arrêté, pare-feu, ou mauvais port SSHDémarrer sshd, ouvrir le pare-feu, ou préciser le bon port avec -e "ssh -p ..."
Host key verification failedPremière connexion, ou serveur réinstallé (clé changée)ssh-keygen -R serveur puis ssh user@serveur pour accepter la clé
write failed: No space left on deviceDisque destination plein ou quota atteintVérifier avec df -h, libérer de l'espace ou augmenter le quota

À garder sous la main : la syntaxe générale, les options de base et les filtres les plus utilisés au quotidien.

SyntaxeSignificationExemple
rsync [OPTIONS] SOURCE DESTFormat général de la commandersync -av source/ dest/
rsync ... user@host:pathTransfert distant via SSHrsync -avz data/ user@srv:/backup/
source/Copie le contenu de sourcersync -av source/ dest/
sourceCopie le dossier sourcersync -av source dest/
SyntaxeSignificationExemple
-a (archive)Récursif + préserve toutrsync -a source/ dest/
-v (verbose)Affiche les fichiers traitésrsync -av source/ dest/
-z (compress)Compresse pendant le transfertrsync -avz source/ dest/
-n (dry-run)Simule sans modifierrsync -avn --delete source/ dest/
-P--partial + --progressrsync -avP gros.iso dest/
--bwlimit=KBPSLimite la bande passante--bwlimit=1000
-c (checksum)Compare par checksumrsync -avc source/ dest/
--statsAffiche les statistiquesrsync -av --stats source/ dest/
-e "ssh ..."Personnalise SSH (port, clé)-e "ssh -p 2222"
SyntaxeSignificationExemple
--deleteSupprime les fichiers absents de la sourcersync -av --delete source/ dest/
--delete-afterSupprime après le transfertrsync -av --delete-after source/ dest/
--updateIgnore les fichiers plus récents sur la destinationrsync -av --update source/ dest/
--exclude "pattern"Exclut des fichiers--exclude "*.log"
--exclude-from=FILEExclusions depuis un fichier--exclude-from=.rsyncignore
--include "pattern"Inclut (à placer avant --exclude)--include "*.txt" --exclude "*"
--link-dest=DIRLiens durs pour sauvegarde incrémentielle--link-dest=/backup/prev

Vous maîtrisez rsync quand vous pouvez cocher chacun de ces points sans hésiter :

  • Je sais utiliser -a, -v, -z pour une synchronisation standard.
  • Je sais tester avec --dry-run avant d'exécuter.
  • Je sais exclure des fichiers avec --exclude.
  • Je sais transférer vers et depuis un serveur distant.
  • Je sais utiliser --delete pour un miroir exact.
  • Je sais personnaliser SSH (port, clé).
  • Je sais reprendre un transfert interrompu avec -P.
  • Je sais faire des sauvegardes incrémentielles avec --link-dest.
  • Je comprends l'importance du slash final sur la source.
  • Je sais diagnostiquer une erreur de connexion SSH.

Contrôle de connaissances

Validez vos connaissances avec ce quiz interactif

5 questions
5 min.
80% requis

Informations

  • Le chronomètre démarre au clic sur Démarrer
  • Questions à choix multiples, vrai/faux et réponses courtes
  • Vous pouvez naviguer entre les questions
  • Les résultats détaillés sont affichés à la fin

Lance le quiz et démarre le chronomètre

  • -avz : la combinaison standard (archive + verbose + compression)
  • Slash final : /source/ copie le contenu, /source copie le dossier
  • --dry-run : TOUJOURS tester avant --delete
  • --link-dest : sauvegardes incrémentielles économes en espace
  • -P : reprise possible des transferts interrompus

Ce site vous est utile ?

Sachez que moins de 1% des lecteurs soutiennent ce site.

Je maintiens +700 guides gratuits, sans pub ni tracing. Aujourd'hui, ce site ne couvre même pas mes frais d'hébergement, d'électricité, de matériel, de logiciels, mais surtout de cafés.

Un soutien régulier, même symbolique, m'aide à garder ces ressources gratuites et à continuer de produire des guides de qualité. Merci pour votre appui.

Abonnez-vous et suivez mon actualité DevSecOps sur LinkedIn