La commande rsync, également connue sous le nom de synchronisation à distance, est utilisée pour transférer et synchroniser des fichiers et des répertoires entre des machines, des hôtes, des shells distants, etc. C'est un utilitaire puissant que vous devriez connaître si vous travaillez avec Linux.
Chez LinuxAPT, nous verrons comment installer la commande rsync sur votre système Ubuntu Linux qui peut également être appliquée dans d'autres distributions Linux.
Si vous souhaitez synchroniser vos fichiers à l'aide de la commande scp, visitez :https://linuxapt.com/blog/408-top-15-scp-command-examples-in-linux
Pourquoi rsync est-il unique ?
Les commandes rsync utilisent la compression et la décompression lors de la réception et de l'envoi de fichiers, cela signifie qu'elles consommeront très moins de bande passante.
Rsync ne met à jour que les différences entre la source et la destination car il utilise le protocole de mise à jour à distance.
Il prend également en charge les propriétaires, les groupes, les liens, les autorisations et les appareils.
Pour voir plus d'options disponibles sur rsync, utilisez :
$ rsync –help
Comment installer rsync sur votre système Ubuntu Linux ?
Pour installer rsync, vous devez exécuter la commande suivante sur votre système :
$ sudo apt-get install rsync
Quelle est la syntaxe de Rsync ?
La syntaxe rsync est donnée ci-dessous.
1. Transfert ou synchronisation local à local :
$ rsync {option} {source} {destination}
2. Transfert ou synchronisation local vers distant :
$ rsync {option} {source} {user@host:destination}
3. Transfert ou synchronisation distant vers local :
$ rsync {option} {user@host:destination} {destination}
Ici,
- Source est le répertoire source.
- Destination est le répertoire de destination.
- Option correspond aux options de la commande rsync.
- L'utilisateur est le nom d'utilisateur distant.
- Hôte est l'adresse IP ou le nom d'hôte distant.
Comment utiliser rsync ?
1. Copiez les fichiers localement
Pour copier des fichiers localement, utilisez :
$ rsync –a {filename} {destination}
Ici, nous copions "source.zip" de notre répertoire actuel vers Documents.
Vous pouvez vérifier si le fichier a été copié en répertoriant tous les fichiers et répertoires dans Documents, en utilisant :
$ ls
Vous verrez que le "source.zip" est présent dans le répertoire Documents.
Si vous n'ajoutez pas de nom pour le fichier dans la destination, il copiera le même nom que le fichier source. Pour changer le nom du fichier de destination, utilisez :
$ rsync –a {filename} {destination/filename}
Dans notre cas, nous allons recopier "source.zip", mais cette fois, renommez-le en "destination.zip".
"destination.zip" a été copié dans le répertoire Documents.
2. Copier le contenu d'un répertoire vers la destination
Vous pouvez utiliser la commande ci-dessous pour copier le contenu de votre répertoire source vers la destination :
$ rsync –av {source}/ {destination}
Vous verrez maintenant que le contenu du répertoire "Source" est copié dans le répertoire "Destination".
3. Copiez tout le répertoire vers la destination
Si vous souhaitez uniquement copier le contenu de votre répertoire vers la destination, utilisez :
$ rsync –av {source} {destination}
Maintenant, vous verrez que le répertoire "Source" et son contenu sont copiés dans le répertoire "Destination".
4. Afficher la progression
Pour afficher la progression, utilisez :
$ rsync –rv –progress {source} {destination}
5. Ignorer les fichiers
Si vous souhaitez ignorer certains fichiers, utilisez :
$ rsync -vr --exclude '{condition}' {source} {destination}
Le répertoire "Source" contiendra des fichiers lorsque vous exécuterez la commande "ls".
Vous pouvez ignorer les fichiers qui commencent par un "s".
6. Lister les fichiers et les répertoires
rsync peut être utilisé pour lister le contenu d'une source :
$ rsync {filename}
Cette commande listera le contenu du répertoire Documents.
7. Copier des fichiers d'une machine locale vers une machine distante
Pour déplacer des fichiers vers une machine distante, vous devrez installer openssh-server. La commande pour cela est :
$ sudo apt update
$ sudo apt install openssh-server
Une fois celui-ci installé, vous pouvez utiliser la commande ci-dessous pour déplacer votre fichier ou répertoire :
$ rsync –a {source} {remote username@remote IP:/destination}
Le mot de passe de la machine distante vous sera demandé.
8. Copier des fichiers d'une télécommande vers une machine locale
Vous pouvez utiliser la commande ci-dessous comme celle utilisée dans l'exemple ci-dessus :
$ rsync –a {remote source} {local username@local IP:/destination}
9. Ajouter la date actuelle au fichier de destination
Vous pouvez ajouter la date au nom de votre fichier ou répertoire de destination en utilisant :
$ rsync -av /home/test/Desktop/Linux /home/test/Desktop/rsync$(date +\\%Y-\\%m)
Affichage des différences entre les fichiers source et destination
La commande ci-dessous peut être utilisée pour voir les différences entre les fichiers source et destination :
$ rsync –avzi {source}/ {destination}/
Ici,
Le paramètre "f" signifie fichier. Les autres paramètres incluent :
- t :modification de l'horodatage
- d :changement de destination
- s :modification de la taille du fichier
10. Limitez la bande passante lors du transfert de fichiers
Pour limiter la bande passante lors du transfert de fichiers, utilisez :
$ rsync -vr --bwlimit=1000 {source}/* {destination}
Comment désinstaller rsync de votre Ubuntu 21.04 ?
Pour désinstaller uniquement le package rsync, nous pouvons utiliser la commande suivante :
$ sudo apt-get remove rsync
Nous pouvons utiliser la commande suivante pour supprimer les configurations rsync, les données et toutes ses dépendances, nous pouvons utiliser la commande suivante :
$ sudo apt-get -y autoremove --purge rsync