C'est quoi, rsync ?
rsync synchronise des fichiers entre deux endroits — localement ou via SSH. Il ne transfère que les différences, ce qui le rend extrêmement efficace même sur des dossiers volumineux.
💡 L'analogie : rsync, c'est comme une sauvegarde intelligente. Il compare source et destination, et ne copie que ce qui a changé. Ni plus, ni moins.
# Synchroniser deux dossiers locaux
$ rsync -avz source/ destination/
# Vers un serveur distant via SSH
$ rsync -avz mon-site/ ubuntu@serveur:~/www/
# Avec suppression des fichiers obsolètes
$ rsync -avz --delete source/ destination/
# Exclure des fichiers
$ rsync -avz --exclude '.git' --exclude 'node_modules' src/ dst/
# Simuler sans rien copier (dry-run)
$ rsync -avzn source/ destination/
Flags essentiels
| Flag | Signification |
|---|---|
| -a | Archive — préserve permissions, dates, liens symboliques |
| -v | Verbose — affiche les fichiers transférés |
| -z | Compresse les données pendant le transfert |
| -n | Dry-run — simule sans rien modifier |
| --delete | Supprime à destination les fichiers absents à la source |
| --progress | Affiche la progression en temps réel |
| -e ssh | Utilise SSH (défaut si hôte distant) |
💡 Attention au slash final
rsync source/ dst/ copie le contenu de source dans dst. rsync source dst/ (sans slash) copie le dossier source lui-même dans dst. Cette différence est critique.