← Sommaire SkyLinux

Leçon 52 : rsync — Synchronisation de fichiers

Objectif

Maîtriser rsync pour synchroniser efficacement des fichiers et répertoires en local ou à distance. C'est l'outil de référence pour les sauvegardes et la copie incrémentale.

Pourquoi rsync ?

Syntaxe de base

rsync [options] SOURCE DESTINATION

Options essentielles

OptionDescription
-aMode archive (preserve permissions, owner, timestamps)
-vMode verbeux (affiche les fichiers)
-zCompression pendant le transfert
-PMontre la progression et permet la reprise
-nMode dry-run (simulation, sans copier)
--deleteSupprime les fichiers dans DEST qui n'existent plus dans SOURCE
--excludeExclut certains fichiers/répertoires

Exemples pratiques

1. Copie locale simple

# Synchroniser un répertoire vers un autre
rsync -av /home/david/documents/ /backup/documents/
# Avec barre de progression
rsync -avP /home/david/documents/ /backup/documents/

2. Transfert via SSH

# Copier vers un serveur distant
rsync -avz -e ssh /local/dir/ user@serveur:/remote/dir/
# Récupérer depuis un serveur distant
rsync -avz -e ssh user@serveur:/remote/dir/ /local/dir/

3. Simulation avant action

# Voir ce qui sera copié sans rien modifier
rsync -avn /source/ /dest/

4. Exclure des fichiers

# Exclure un type de fichier
rsync -av --exclude='*.log' /source/ /dest/
# Exclure plusieurs patterns
rsync -av --exclude='*.tmp' --exclude='.git' --exclude='node_modules/' /source/ /dest/

5. Synchronisation miroir (identique)

# Supprime les fichiers absents de la source
rsync -av --delete /source/ /dest/

6. Sauvegarde quotidienne classique

# Script de sauvegarde vers un serveur de backup
rsync -avz --delete -e ssh /home/david/ user@backup-server:/backup/david/

Cas d'usage courants

Déployer un site web

rsync -avz --delete ./dist/ user@monsite:/var/www/html/

Sauvegarder un serveur vers un NAS

rsync -avz -e ssh root@monserveur:/var/www/ /mnt/nas/serveur/www/

Copier uniquement les fichiers récents (modifiés depuis 7 jours)

rsync -avz --modify-window=1 --min-size=1 /source/ /dest/

Les slashs comptent !

Attention à la présence ou l'absence du / final :

SyntaxeComportement
rsync -a /source /destCrée /dest/source/
rsync -a /source/ /destCrée /dest/ (contenu de source)

Bonnes pratiques

Exercices pratiques

  1. Copie locale — Synchronise ton dossier ~/Documents vers /tmp/backup-documents/ en mode verbeux.
  2. Simulation — Utilise -n pour voir ce qui serait copié sans rien modifier.
  3. Exclusion — Synchronise un dossier en excluant tous les fichiers .log et le dossier .git.
  4. Sauvegarde distante — Si tu as accès SSH à une machine, synchronise un petit dossier via SSH.

Résumé

CommandeUsage
rsync -av source/ dest/Synchronisation locale
rsync -avz -e ssh src/ user@host:dst/Transfert via SSH
rsync -avP src/ dst/Avec progression et reprise
rsync -avn src/ dst/Dry-run (simulation)
rsync -av --exclude='*.log' src/ dst/Avec exclusions
rsync -av --delete src/ dst/Mirroring (synchro exacte)