rsync remote synchronization, en français : « synchronisation distante » est un logiciel libre de synchronisation de fichiers, distribué sous licence GNU GPL. La synchronisation est unidirectionnelle, c’est-à-dire qu’elle copie les fichiers de la source en direction de la destination. rsync est donc utilisé pour réaliser des sauvegardes incrémentielles ou différentielles ou pour diffuser le contenu d’un répertoire de référence.
Wikipédia
Exemples d’utilisations rencontrés lors de l’installation de serveurs
rsync -avP piwigo/ /var/www/html/mon_serveur
Cette commande synchronise le contenu du dossier local piwigo/ vers le dossier /var/www/html/mon_serveur/ sur le même système ou un système distant.
- -a : Mode « archive ». Conserve les permissions, les propriétaires, les timestamps et les liens symboliques. Équivaut à -rlptgoD.
- -v : Mode « verbose ». Affiche les fichiers transférés.
- -P : Affiche la progression du transfert et reprend les transferts interrompus.
- piwigo/ : Dossier source (le / final signifie que seul le contenu du dossier est copié, pas le dossier lui-même).
- /var/www/html/mon_serveur : Dossier de destination.
rsync -avP --exclude='LocalSettings.php' --exclude='images' --exclude='uploads' mediawiki-1.43.0/ /var/www/html/wikimv/
Cette commande synchronise le contenu du dossier mediawiki-1.43.0/ vers /var/www/html/wikimv/, en excluant certains fichiers ou dossiers.
- –exclude=’LocalSettings.php’ : Exclut le fichier LocalSettings.php du transfert.
- –exclude=’images’ : Exclut le dossier images du transfert.
- –exclude=’uploads’ : Exclut le dossier uploads du transfert.
Autres exemples pertinents
Synchronisation vers un serveur distant via SSH
rsync -avz -e ssh /dossier/local/ utilisateur@serveur:/chemin/distant/
- -z : Compresse les données pendant le transfert.
- -e ssh : Utilise SSH pour le transfert sécurisé.
Synchronisation avec suppression des fichiers obsolètes
rsync -av --delete /dossier/source/ /dossier/destination/
- –delete : Supprime les fichiers dans le dossier de destination qui n’existent plus dans la source.
Limitation de la bande passante
rsync -av --bwlimit=1000 /dossier/source/ /dossier/destination/
- –bwlimit=1000 : Limite la bande passante à 1000 Ko/s.
Synchronisation en mode « dry run » (simulation)
rsync -avn /dossier/source/ /dossier/destination/
- -n : Mode « dry run ». Affiche ce qui serait fait sans effectuer de modifications.
Synchronisation avec conservation des liens symboliques
rsync -avL /dossier/source/ /dossier/destination/
- -L : Copie les fichiers pointés par les liens symboliques plutôt que les liens eux-mêmes.
Synchronisation avec exclusion par motif
rsync -av --exclude='*.log' /dossier/source/ /dossier/destination/
- –exclude=’*.log’ : Exclut tous les fichiers avec l’extension .log.
Synchronisation avec inclusion sélective
rsync -av --include='*.txt' --exclude='*' /dossier/source/ /dossier/destination/
- –include=’*.txt’ : N’inclut que les fichiers .txt.
- –exclude=’*’ : Exclut tout le reste.
Tableau récapitulatif des options courantes
| Option | Description |
|---|---|
-a | Mode archive (conserve les permissions, timestamps, etc.) |
-v | Mode verbeux (affiche les fichiers transférés) |
-P | Affiche la progression et reprend les transferts interrompus |
-z | Compresse les données pendant le transfert |
--delete | Supprime les fichiers obsolètes dans la destination |
--exclude | Exclut des fichiers ou dossiers spécifiques |
--bwlimit | Limite la bande passante utilisée |
-n | Mode « dry run » (simulation) |
-e ssh | Utilise SSH pour le transfert sécurisé |
Bonnes pratiques
- Testez toujours avec -n avant d’exécuter une commande rsync pour éviter les erreurs.
- Utilisez SSH pour les transferts distants afin de sécuriser les données.
- Excluez les fichiers sensibles (comme les fichiers de configuration ou les bases de données) pour éviter les écrasements accidentels.