rsync
est un outil en ligne de commande utilisé pour synchroniser des fichiers et des répertoires entre des systèmes de manière efficace et sécurisée. Il est particulièrement utile pour les sauvegardes, les mises à jour de miroirs, et les transferts de fichiers. rsync
utilise un algorithme de différence pour minimiser la quantité de données transférées, ce qui le rend très efficace pour les transferts de fichiers volumineux ou les mises à jour incrémentales.
Installation
rsync
est généralement installé par défaut sur la plupart des distributions Linux. Si ce n'est pas le cas, vous pouvez l'installer en utilisant le gestionnaire de paquets de votre distribution :
Debian/Ubuntu :
sudo apt-get install rsync
CentOS/RHEL :
sudo yum install rsync
Fedora :
sudo dnf install rsync
Utilisation de Base
La syntaxe de base de rsync
est la suivante :
rsync [options] source destination
Options de Base
-a : Archiver (copier de manière récursive et préserver les attributs des fichiers).
rsync -a source/ destination/
-v : Activer le mode verbeux pour afficher des informations détaillées sur le transfert.
rsync -av source/ destination/
-z : Activer la compression pour améliorer la vitesse de transfert.
rsync -avz source/ destination/
-P : Afficher la progression du transfert et conserver les fichiers partiellement transférés.
rsync -avzP source/ destination/
-e : Spécifier le programme à utiliser pour la connexion (par exemple, ssh
).
rsync -avz -e ssh source/ user@remote_host:destination/
--delete : Supprimer les fichiers dans la destination qui ne sont pas présents dans la source.
rsync -avz --delete source/ destination/
Exemples de Commandes Avancées
Synchroniser un répertoire local vers un répertoire distant via SSH :
rsync -avz -e ssh source/ user@remote_host:destination/
Synchroniser un répertoire distant vers un répertoire local via SSH :
rsync -avz -e ssh user@remote_host:source/ destination/
Synchroniser un répertoire local vers un répertoire distant avec suppression des fichiers absents :
rsync -avz --delete source/ user@remote_host:destination/
Synchroniser un répertoire distant vers un répertoire local avec suppression des fichiers absents :
rsync -avz --delete user@remote_host:source/ destination/
Synchroniser un répertoire local vers un répertoire distant avec compression et affichage de la progression :
rsync -avzP source/ user@remote_host:destination/
Synchroniser un répertoire local vers un répertoire distant en utilisant un port SSH spécifique :
rsync -avz -e 'ssh -p 2222' source/ user@remote_host:destination/
Synchroniser un répertoire local vers un répertoire distant en utilisant une clé privée spécifique pour l'authentification :
rsync -avz -e 'ssh -i /path/to/private_key' source/ user@remote_host:destination/
Utilisation de rsync
pour les Sauvegardes
rsync
est souvent utilisé pour les sauvegardes incrémentales. Par exemple, pour synchroniser un répertoire local vers un répertoire distant avec suppression des fichiers absents :
rsync -avz --delete source/ user@remote_host:destination/
Utilisation de rsync
pour les Mises à Jour de Miroirs
rsync
est également utilisé pour mettre à jour des miroirs de sites web ou de dépôts de logiciels. Par exemple, pour synchroniser un répertoire local vers un répertoire distant avec compression et affichage de la progression :
rsync -avzP source/ user@remote_host:destination/