GNU/Linux >> Tutoriels Linux >  >> Linux

Commande Rsync :20 exemples utiles sous Linux

Présentation

Rsync, ou Remote Sync, est un outil de ligne de commande gratuit qui vous permet de transférer des fichiers et des répertoires vers des destinations locales et distantes. Rsync est utilisé pour la mise en miroir, la réalisation de sauvegardes ou la migration de données vers d'autres serveurs.

Cet outil est rapide et efficace, ne copiant que les modifications depuis la source et offrant des options de personnalisation.

Suivez ce didacticiel pour apprendre à utiliser rsync avec 20 exemples de commandes pour couvrir la plupart des cas d'utilisation sous Linux.

Prérequis

  • Utilisateur avec sudo ouracine privilèges
  • Accès à un terminal/ligne de commande
  • Accès SSH pour les exemples de rsync à distance

Syntaxe de la commande Rsync

La syntaxe de rsync La commande change en fonction de l'utilisation de l'outil. Nous couvrirons tous les scénarios dans les exemples suivants. La syntaxe Rsync dans sa forme la plus basique ressemble à ceci :

rsync options SOURCE DESTINATION

Les transferts de données à distance nécessitent que vous spécifiiez l'adresse d'un hôte, mais nous en reparlerons plus tard.

Options Rsync

L'outil rsync est livré avec de nombreuses options. Vous pouvez saisir rsync dans votre terminal et obtenez tous les détails. Nous énumérerons certaines des options rsync les plus courantes.

Ceux-ci incluent :

-r Permet de synchroniser les données de manière récursive mais ne conserve pas la propriété des utilisateurs et des groupes, des autorisations, des horodatages ou des liens symboliques.
-a Le mode archive se comporte comme le mode récursif mais conserve toutes les autorisations de fichiers, les liens symboliques, la propriété des fichiers, etc.
-z Utilisé pour compresser les données lors des transferts afin d'économiser de l'espace.
-b Effectue une sauvegarde lors de la synchronisation des données.
-h Affiche les nombres dans la sortie dans un format lisible par l'homme.
-n Effectue une simulation. Utilisé pour tester avant que la synchronisation proprement dite n'ait lieu.
-e Demande au rsync d'utiliser le protocole SSH pour les transferts à distance.
-progress Affiche la progression du transfert pendant la synchronisation.
-v Sortie détaillée. Affiche les détails du transfert.
-q Utilisé pour supprimer la sortie de la commande et des options rsync.

Exemples de commandes Rsync

Rsync est un outil de synchronisation polyvalent que vous pouvez personnaliser en fonction de votre utilisation spécifique. Dans ce guide, nous utiliserons l'archive (-a ) et verbeux (-v ) options en cas de besoin.

Reportez-vous aux exemples rsync ci-dessous pour couvrir la majorité de l'utilisation de rsync.

1. Copier un seul fichier localement

Pour copier un fichier dans un autre répertoire sur une machine locale, saisissez le chemin complet du fichier source, suivi de la destination cible.

Par exemple :

rsync -v /home/test/Desktop/sample.txt /home/test/Desktop/rsync/

La commande transfère le sample.txt fichier au rsync annuaire. Si le répertoire de destination n'existe pas, ajoutez une barre oblique à la fin et rsync le créera, comme c'est le cas dans notre exemple.

Si vous souhaitez copier un fichier à partir du répertoire de travail actuel, vous pouvez entrer le nom du fichier, pas le chemin complet.

2. Copier plusieurs fichiers localement

Pour copier plusieurs fichiers avec rsync, ajoutez les chemins complets des fichiers source :

rsync -v /home/test/Desktop/sample.txt /home/test/Desktop/sample2rs.txt /home/test/Desktop/rsync

Vous devez utiliser cette méthode pour un petit nombre de fichiers. Si la liste est plus longue, vous pouvez vous référer au --exclude option.

3. Copier un répertoire et tous les sous-répertoires localement (copier les fichiers et les répertoires de manière récursive)

Pour copier un répertoire et son contenu vers un autre emplacement sur votre machine, utilisez le -a ou -r option. Nous avons utilisé les archives option :

rsync -av /home/test/Desktop/Linux /home/test/Desktop/rsync

L'exemple ci-dessus montre comment copier le Linux répertoire vers rsync annuaire. Notez que nous n'avons pas utilisé la barre oblique après Linux . Par conséquent, l'outil rsync a créé le Linux répertoire et son contenu dans rsync répertoire.

4. Copier un fichier ou un répertoire d'une machine locale vers une machine distante

Pour copier le répertoire /home/test/Desktop/Linux vers /home/test/Desktop/rsync sur une machine distante, vous devez spécifier l'adresse IP de la destination.

Ajoutez l'adresse IP et la destination après le répertoire source. N'oubliez pas de mettre deux-points (: ) après l'adresse IP de l'hôte distant, sans espace avant la destination.

La commande ressemble à ceci :

rsync -av /home/test/Desktop/Linux 192.168.56.100:/home/test/Desktop/rsync

Entrez le mot de passe de l'utilisateur actuel pour continuer. Si vous souhaitez utiliser un autre compte pour la connexion à distance, précisez-le avant l'adresse IP :

rsync -a /home/test/Desktop/Linux [email protected]:/home/test/Desktop/rsync

Pour copier un seul fichier sur un hôte distant, spécifiez le chemin complet du fichier et la destination.

Par exemple :

rsync -av /home/test/Desktop/sample_file.txt 192.168.56.100:/home/test/Desktop/rsync

5. Copier plusieurs fichiers ou répertoires d'une machine locale vers une machine distante

Similaire à la copie locale de données, répertoriez plusieurs fichiers ou plusieurs chemins de répertoire que vous souhaitez copier sur un serveur distant. Suivez la même syntaxe que pour copier un seul fichier ou répertoire.

Par exemple :

rsync -av /home/test/Desktop/Linux/ /home/test/Music 192.168.56.100:/home/test/Desktop/rsync

6. Spécifiez le protocole rsync pour les transferts à distance

L'outil rsync peut être instruit avec le -e possibilité d'utiliser un protocole spécifique pour les transferts de fichiers. Pour utiliser Rsync sur SSH pour transférer des fichiers à distance, ajoutez -e ssh au rsync commande.

Par exemple, pour transférer sample.txt depuis votre bureau vers le bureau d'une machine distante :

rsync -e ssh /home/test/Desktop/sample.txt 192.168.56.100:/home/test/Desktop

7. Copier un fichier ou un répertoire d'une télécommande vers une machine locale

Rsync prend en charge le transfert de fichiers d'un serveur distant vers votre machine locale.

Pour extraire un répertoire d'un serveur, spécifiez son adresse IP avant la source.

Par exemple :

rsync -av 192.168.56.100:/home/test/Desktop/DirM /home/test/Desktop

Cette commande a copié le DirM répertoire de 192.168.56.100 à /home/test/Desktop sur un serveur local.

Pour copier un fichier spécifique à partir d'un hôte distant, entrez le chemin complet du fichier source et la destination sur votre ordinateur local. Par exemple :

rsync -v 192.168.56.100:/home/test/Desktop/testfile.txt /home/test/Desktop

8. Copier plusieurs fichiers ou répertoires d'une machine locale vers une machine distante

Pour transférer plusieurs fichiers ou plusieurs répertoires à partir d'un serveur distant, répertoriez les chemins à l'aide d'accolades après l'adresse IP du serveur. Séparez les chemins par une virgule.

Par exemple :

rsync -av 192.168.56.100:{/home/test/Desktop/DirM,/home/test/Desktop/Dir1} /home/test/rsync

Il en va de même pour les fichiers. Listez autant de fichiers que nécessaire entre accolades.

9. Afficher la progression de rsync pendant le transfert de données

Lorsque vous effectuez une sauvegarde de données volumineuses, vous souhaiterez peut-être afficher la progression du transfert.

Ajoutez le --progress indicateur au rsync pour afficher la quantité de données transférées, la vitesse de transfert et le temps restant.

Par exemple, pour sauvegarder Dir1 à un serveur distant et afficher la progression, entrez :

rsync -av --progress /home/test/Desktop/Dir1 192.168.56.100:/home/test/Desktop/rsync

10. Supprimer un fichier source ou un répertoire inexistant de la destination

Utilisez le --delete option pour garder la source et la cible synchronisées.

Cette option indique à rsync de supprimer tout fichier ou répertoire à la destination si la source ne l'a pas.

rsync -av --delete /home/test/Desktop/Dir1 192.168.56.100:/home/test/Desktop/rsync

11. Supprimer les fichiers sources après le transfert

Dans certains scénarios, vous souhaiterez peut-être supprimer les fichiers source après le transfert. Par exemple, vous pouvez déplacer une sauvegarde hebdomadaire vers un nouveau serveur. Une fois le transfert effectué, vous n'avez plus besoin des fichiers sources sur l'ancien serveur.

Dans ce cas, utilisez le --remove-source-files drapeau pour supprimer le fichier source que vous avez spécifié.

Par exemple, cette commande transfère le fichier de sauvegarde weekly.zip puis le supprime de la source :

rsync -v --remove-source-files /home/test/backup/weekly.zip 192.168.56.100:/home/test/Desktop/rsync/

12. Rsync Dry Run

Rsync est un puissant outil de synchronisation. Étant donné que cet outil vous permet de copier et de supprimer des données, nous vous conseillons de faire d'abord un essai pour tester si rsync fait ce que vous vouliez.

L'option de simulation est particulièrement utile lorsque vous souhaitez supprimer des fichiers. Pour faire un essai à blanc, utilisez le --dry-run et suivez la syntaxe habituelle de rsync.

Par exemple :

rsync -av --dry-run --delete /home/test/Desktop/Dir1 192.168.56.100:/home/test/Desktop/rsync

La sortie est la même que lorsque vous synchronisez réellement des fichiers. Cependant, cette fois, les données ne seront pas synchronisées. Pour confirmer que le test a eu lieu et non le transfert réel, le terminal affiche (DRY RUN) en bas.

13. Définir la taille de fichier maximale pour le transfert

Pour déterminer la taille de fichier maximale que rsync transférera, utilisez le --max-size=add_size .

Par exemple, pour transférer des fichiers ne dépassant pas 500 Ko, utilisez cette commande :

rsync -av --max-size=500k /home/test/Desktop/Dir1 192.168.56.100:/home/test/Desktop/rsync/

14. Définir la taille minimale du fichier pour le transfert

Utilisez --min-size=add_size avec rsync lorsque vous ne souhaitez pas transférer des fichiers plus petits que la taille que vous spécifiez. Cette option est utile, par exemple, lorsque vous souhaitez ignorer les petits fichiers journaux ou miniatures.

Pour ignorer tout fichier inférieur à 10 Ko, exécutez cette commande :

rsync -av --min-size=10k /home/test/Desktop/ 192.168.56.100:/home/test/Desktop/rsync/

15. Définir la limite de bande passante rsync

Si vous souhaitez déterminer la limite de bande passante lors du transfert de données entre machines, utilisez --bwlimit=KB/s .

Cette option est utile lorsque vous ne souhaitez pas obstruer le débit de votre réseau.

Pour définir la vitesse de transfert maximale sur 50 Ko/s, saisissez :

rsync -av --bwlimit=50 --progress /home/test/Desktop/Dir1 192.168.56.100:/home/test/Desktop/rsync/

Nous avons également utilisé le --progress option pour démontrer l'utilisation de --bwlimit .

16. Copier un type de fichier spécifique

Vous pouvez utiliser rsync pour copier uniquement un type de fichier spécifique. Pour cela, utilisez l'astérisque (* ) au lieu du nom de fichier et ajoutez l'extension.

Par exemple, pour copier uniquement les fichiers .txt, saisissez :

rsync -v /home/test/Documents/*.txt /home/test/Desktop/rsync/

Ce rsync La commande transfère tous les fichiers texte des Documents répertoire vers rsync répertoire sur votre bureau.

17. Copier la structure du répertoire mais ignorer les fichiers

Rsync vous permet de transférer uniquement la structure des répertoires si vous n'avez pas besoin des fichiers à un autre emplacement.

Pour ce faire, ajoutez -f"+ */" -f"- *" avant le répertoire source.

Par exemple, pour copier la structure de Linux répertoire vers Documents , saisissez :

rsync -av -f"+ */" -f"- *"  /home/test/Desktop/Linux /home/test/Documents

18. Ajouter un horodatage au nom du répertoire

Vous pouvez facilement ajouter une date à un nom de répertoire si vous souhaitez mettre un horodatage sur vos transferts.

Ajouter $(date +%Y-%m-%d) au nom du répertoire de destination que vous souhaitez créer. Cette option est utile lorsque vous souhaitez savoir quand les transferts ont eu lieu sans ouvrir les propriétés du répertoire.

Par exemple :

rsync -av /home/test/Desktop/Linux /home/test/Desktop/rsync$(date +%Y-%m-%d)

19. Ne copiez pas le fichier source si le même fichier de destination est modifié

Si vous gardez en synchronisation deux répertoires, rsync ne copie pas un fichier si le même existe à la destination.

Parfois, il peut arriver que vous modifiiez un fichier à la destination et que vous ne vouliez pas laisser rsync l'écraser.

Pour éviter d'écraser les fichiers de destination modifiés, utilisez le -u option.

Par exemple :

rsync -avu /home/test/Desktop/Linux/ /home/test/Desktop/rsync

20. Afficher la différence entre les fichiers source et de destination

Lorsque vous commencez à transférer des données, vous pouvez utiliser le -i flag avec rsync pour vérifier s'il y a une différence entre la source et la destination.

Par exemple :

rsync -avi /home/test/Desktop/Linux/ /home/test/Desktop/rsync

L'exemple ci-dessus montre le sample2rs.txt le fichier est manquant à la destination.

Les lettres possibles dans la sortie sont :

  • f signifie fichier
  • d indique que le fichier de destination est en question
  • t indique que l'horodatage a changé
  • s indique que la taille a changé

Linux
  1. Commande cp sous Linux :7 exemples pratiques

  2. Commande Linux cp

  3. Commande Linux rsync avec des exemples pratiques

  4. Exemples de commandes sa sous Linux

  5. ac Exemples de commandes sous Linux

17 exemples de commande rsync (synchronisation à distance) utiles sous Linux

Commande Rsync sous Linux avec des exemples

Exemples de commandes Linux Rsync pour les débutants

15 exemples pratiques de commande Rsync sous Linux

Exemples de commandes Linux rsync

Exemples de commandes id sous Linux