15 exemples Rsync

15 Exemples Rsync



Le transfert de fichiers d'un emplacement à un autre est une tâche très courante pour l'utilisateur Linux. De nombreuses options sont disponibles sous Linux pour effectuer cette tâche ; 'rsync' est l'un d'entre eux. La forme complète de 'rsync' est 'Remote Sync'. C'est un outil de synchronisation très utile pour copier les fichiers et dossiers d'un système à un autre système localement ou à distance. Il a beaucoup plus d'avantages que les autres outils de synchronisation. Cet outil est installé sous Linux par défaut. Ainsi, l'utilisateur n'a pas besoin de l'installer. Les avantages et les utilisations de la commande 'rsync' sont présentés dans ce tutoriel à l'aide de 15 exemples simples.

Avantages de la commande 'Rsync'

  1. Il est plus rapide que les autres outils car il ne copie que les fichiers de l'emplacement source vers l'emplacement de destination qui sont modifiés ou qui n'existent pas à l'emplacement de destination.
  2. Il prend en charge le transfert incomplet.
  3. Il nécessite moins de bande passante car il comprime les données lors de la transmission.
  4. Cela réduit la surcharge de la transmission car les données les moins importantes peuvent être transmises sans cryptage.

Syntaxe

La syntaxe de la commande « rsync » est donnée ci-dessous :

rsync [Option] Source Destination

Ici, les chemins source et destination peuvent être locaux ou distants. Différents types d'options peuvent être utilisés avec cette commande à des fins différentes.







Options utiles de la commande 'Rsync'

Certaines options couramment utilisées de la commande 'rsync' sont expliquées ci-dessous :



Option But
-Avec Il est utilisé pour compresser les données lors de la transmission.
-r Il est utilisé pour synchroniser les données de manière récursive sans conserver aucune autorisation de fichier.
-un Il est utilisé pour synchroniser les données de manière récursive en conservant toutes les autorisations de fichiers.
-b Il est utilisé pour conserver une sauvegarde des données pendant la transmission.
-dans Il est utilisé pour afficher la sortie dans un format détaillé.
-p Il est utilisé pour afficher la progression du transfert.
-n Il est utilisé pour vérifier si la synchronisation fonctionne ou non avant de transférer les fichiers ou dossiers.

Liste de 15 exemples « Rsync »

  1. Transférer un seul fichier et dossier localement
  2. Transférer plusieurs fichiers et dossiers localement
  3. Transférer un seul fichier et dossier à distance
  4. Transférer plusieurs fichiers et dossiers à distance
  5. Afficher la progression du transfert
  6. Compresser les données pendant le transfert
  7. Transfert avec la limite de bande passante
  8. Transférer les fichiers et dossiers de manière récursive
  9. Transfert avec la limite de taille minimale
  10. Transfert avec la limite de taille maximale
  11. Transférer les fichiers du type particulier
  12. Afficher les différences entre les fichiers source et destination
  13. Inclure ou exclure les fichiers pendant le transfert
  14. Synchroniser les données en mode sec
  15. Supprimer les fichiers et dossiers sources après le transfert

Transférer un seul fichier et dossier localement

Exécutez la commande 'ls' pour afficher la liste des fichiers et dossiers de l'emplacement actuel. Ensuite, exécutez la commande 'rsync' pour transférer le fichier 'employees.txt' vers le fichier 'employees_copy.txt' localement. Exécutez à nouveau la commande 'ls' pour vérifier si le fichier est transféré correctement ou non.



$ ls
$ rsync employés.txt employés_copie.txt
$ ls

La sortie suivante montre que le fichier « employee.txt » a été transféré avec succès :





Supposons que le contenu du dossier temporaire doive être transféré dans le dossier tempdir où le fichier 'courses.txt' existe sur les deux dossiers. Exécutez la commande 'ls temp' pour vérifier le contenu du dossier temporaire. Ensuite, lancez la commande « cat temp/courses.txt » pour vérifier le contenu de ce fichier. Ensuite, exécutez la commande 'ls tempdir' pour vérifier le contenu du dossier tempdir. Ensuite, lancez la commande « cat tempdir/courses.txt » pour vérifier le contenu de ce fichier.



$ ls temp
$ chat temp/courses.txt
$ répertoire_lstemp
$ cat réptemp/courses.txt

La sortie montre que le contenu du fichier 'courses.txt' des dossiers temp et tempdir est légèrement différent et le fichier 'courses.txt' du dossier temp contient plus de données que le fichier 'courses.txt' du dossier tempdir .

Exécutez la commande suivante pour transférer le contenu du dossier temp vers le dossier tempdir et vérifiez le contenu du fichier 'courses.txt' du dossier tempdir pour confirmer que le fichier est mis à jour correctement ou non :

$ rsync -a temp/ tempdir/
$ répertoire_lstemp
$ cat réptemp/courses.txt

La sortie suivante montre que le contenu du dossier temp est correctement transféré dans le dossier tempdir et que le contenu du fichier 'courses.txt' du dossier tempdir est correctement mis à jour :

Transférer plusieurs fichiers et dossiers localement

La commande 'rsync' peut être utilisée pour transférer plusieurs fichiers et dossiers localement. Exécutez la commande suivante pour transférer les fichiers « ping1.bash » et « ping2.bash » dans le dossier tempdir et vérifiez le contenu du dossier tempdir après le transfert. L'option -v est utilisée avec la commande 'rsync' pour afficher la sortie au format détaillé :

$ rsync -v ping1.bash ping2.bash réptemp/
$ répertoire_lstemp

La sortie suivante montre que plusieurs fichiers sont correctement transférés dans le dossier tempdir :

Exécutez les commandes suivantes pour vérifier le contenu des dossiers temp, tempdir et test et transférer le contenu des dossiers test et tempdir vers le dossier temp :

$ ls temp
$ répertoire_lstemp
$ ls test
$ rsync -av test/ tempdir/ temp/
$ ls temp

La sortie montre que le contenu des dossiers test et tempdir a été transféré avec succès dans le dossier temp. Les fichiers « customers.csv », « ping1.bash » et « ping2.bash » sont ajoutés en tant que nouveaux fichiers au dossier temporaire :

Transférer un seul fichier et dossier à distance

Vous devez installer et configurer le serveur SSH dans l'emplacement distant pour transférer les fichiers et dossiers à distance. Vous pouvez vérifier cela Didacticiel pour configurer le serveur SSH.

Exécutez la commande suivante pour vérifier la taille du fichier 'courses.txt' de l'emplacement actuel :

ls -la cours.txt

La sortie montre que la taille du fichier 'courses.txt' est de 65 octets :

Exécutez la commande suivante pour transférer le 'courses.txt' vers le /accueil/ubuntu/cours/ dossier de l'emplacement distant, ubuntu@192.168.0.101. Vous devez fournir le mot de passe root de la machine distante avant de transférer le fichier :

rsync -v courses.txt ubuntu@192.168.0.101:/home/ubuntu/courses/

La sortie suivante montre que le fichier 'courses.txt' est correctement transféré sur la machine distante et que la taille du fichier est de 65 octets :

Exécutez la commande suivante pour transférer le dossier temporaire vers le /accueil/ubuntu/cours/ dossier de l'emplacement distant, ubuntu@192.168.0.101. Vous devez fournir le mot de passe root de la machine distante avant de transférer le fichier comme la commande précédente.

rsync -av temp/ ubuntu@192.168.0.101:/home/ubuntu/courses/

La sortie suivante montre que le contenu du dossier temporaire est correctement transféré dans la machine distante :

Transférer plusieurs fichiers et dossiers à distance

La commande « rsync » suivante transfère les fichiers « customers.csv » et « department.json » vers le /home/Ubuntu/fichiers/ dossier de l'emplacement distant, ubuntu@192.168.0.101.

rsync -av clients.csv service.json ubuntu@192.168.0.101:/home/ubuntu/files/

Le résultat suivant montre que plusieurs fichiers ont été transférés avec succès vers l'emplacement distant :

La commande « rsync » suivante transfère le contenu des dossiers temporaires et de test et du fichier « department.json » vers le /home/Ubuntu/fichiers/ dossier de l'emplacement distant, ubuntu@192.168.0.101.

rsync -av temp/ test/ department.json ubuntu@192.168.0.101:/home/ubuntu/files/

La sortie suivante montre que le contenu de plusieurs dossiers est transféré avec succès vers l'emplacement distant :

Afficher la progression du transfert

Exécutez la commande 'rsync' avec l'option -progress pour transférer le contenu du dossier tempdir vers le dossier temp_copy avec les informations de progression.

rsync -a tempdir/ temp_copy --progress

La sortie suivante montre que le répertoire temp_copy est créé localement et que le contenu du dossier tempdir est transféré avec succès vers le dossier temp_copy :

Compresser les données pendant le transfert

Exécutez la commande « rsync » suivante avec l'option –z pour compresser et transférer localement le répertoire tempdir vers le répertoire de test :

rsync -za répertoire temp/test/

La sortie suivante montre que le répertoire compressé est transféré avec succès localement :

Transfert avec la limite de bande passante

Exécutez la commande « rsync » suivante avec l'option –bwlimit avec la valeur 100 pour transférer le fichier /etc/passwd vers le dossier temporaire localement :

rsync -v --bwlimit=100 etc/passwd temp/

La sortie suivante montre que le fichier passwd a été transféré avec succès :

Transférer le fichier et le dossier de manière récursive

Exécutez la commande « rsync » suivante avec l'option –rv pour transférer localement le dossier test dans le dossier test_bak :

rsync -rv test/ test_bak/

La sortie suivante montre que le dossier test a été transféré avec succès dans le dossier test_bak :

Transfert avec la limite de taille minimale

Le transfert des fichiers et des dossiers à l'aide de la commande 'rsync' peut être limité à l'aide de l'option -min-size pour définir la limite de taille minimale du transfert des fichiers et des dossiers. Exécutez la commande suivante 'ls -la tempdir' pour vérifier la taille de chaque fichier et dossier de ce dossier. Ensuite, exécutez la commande 'rsync' pour transférer le contenu du dossier tempdir vers le dossier tempdir_bak avec la limite de taille minimale.

ls -la répertoire temp
rsync -av --min-size='245B' tempdir/tempdir_bak

La sortie suivante montre que deux fichiers existent dans le dossier tempdir qui correspond à la taille minimale. Ce sont « ping1.bash » (248 octets) et « test.txt » (34504 octets). Ces fichiers sont transférés dans le dossier tempdir_bak et les autres fichiers du dossier tempdir sont omis :

Transfert avec la limite de taille maximale

Le transfert des fichiers et des dossiers à l'aide de la commande 'rsync' peut être limité à l'aide de l'option –max-size pour définir la taille maximale des fichiers et dossiers transférés. Exécutez la commande 'ls -la temp' suivante pour vérifier la taille de chaque fichier et dossier de ce dossier. Ensuite, exécutez la commande 'rsync' pour transférer le contenu du dossier temporaire vers le dossier temp_bak avec la limite de taille maximale.

ls -la temp
rsync --max-size='250B' temp/ temp_bak/

La sortie suivante montre que quatre fichiers existent dans le dossier temporaire qui correspond à la limite de taille maximale. Il s'agit de 'courses.txt' (65 octets), 'employees.csv' (361 octets), 'ping1.bash' (248 octets) et 'ping2.bash' (244 octets). Ces fichiers sont transférés dans le dossier temp_bak et les autres fichiers du dossier temp sont omis :

Transférer les fichiers du type particulier

Le type de fichier qui sera transféré peut être défini en mentionnant l'extension du fichier dans la commande 'rsync'. Exécutez la commande 'rsync' suivante pour transférer tous les fichiers texte du dossier temporaire vers le dossier mydir. Ici, l'extension du fichier texte est désignée par '*.txt':

rsync -v temp/*.txt monrep/

La sortie suivante montre que deux fichiers texte, 'courses.txt' et 'test.txt', sont transférés dans le dossier mydir, et les autres fichiers du dossier temp sont omis :

Afficher les différences entre les fichiers source et destination

Lorsque les fichiers ou les dossiers sont transférés d'un emplacement à un autre localement ou à distance, les deux emplacements peuvent contenir les mêmes fichiers ou dossiers. Les différences entre la source et la destination pendant la transmission peuvent être examinées en utilisant l'option -i avec la commande « rsync ». Exécutez les commandes 'cat' suivantes pour vérifier le contenu du fichier source et du fichier de destination avant le transfert. Ici, le fichier 'courses.txt' est transféré dans le dossier temporaire.

cours de chat.txt
chat temp/courses.txt
rsync -avi courses.txt temp/

La sortie suivante montre que le fichier 'courses.txt' de la source et de la destination est légèrement différent. La sortie de la commande 'rsync' montre la différence entre les fichiers :

Synchroniser les données en mode sec

Si vous voulez savoir quels fichiers et dossiers sont transférés par la commande « rsync » avant le transfert proprement dit, il est préférable d'exécuter la commande « rsync » avec l'option –dry-run ou l'option –n. Lorsque la commande « rsync » est exécutée avec cette option, elle vérifie quels fichiers ou dossiers sont copiés du dossier source vers le dossier de destination, mais conserve le dossier de destination inchangé. Exécutez le fichier « ls –la department.json » pour vérifier la taille du fichier. Ensuite, exécutez la commande 'rsync' avec le mode -dry-run pour vérifier le transfert de 'department.json' vers le dossier temporaire.

ls -la département.json
rsync -v --dry-run department.json temp/

La sortie suivante montre que la taille du fichier 'department.json' est de 1172 octets. La taille du fichier affiche 1172 octets après l'exécution de la commande « rsync » avec l'option –dry-run :

Inclure ou exclure les fichiers pendant le transfert

Vous pouvez filtrer le type de fichier au moment du transfert de l'emplacement source vers l'emplacement de destination à l'aide des options –include et –exclude. L'option 'optionsinclude' est utilisée pour définir l'extension de ces fichiers qui seront transférés de la source à la destination. L'option –exclude est utilisée pour définir l'extension des fichiers qui ne seront pas transférés de la source vers la destination.

Exécutez le dossier 'ls temp' suivant pour vérifier le contenu du dossier temp. Ensuite, exécutez la commande « rsync » avec les options –include et –exclude. Selon la commande, tous les fichiers CSV du dossier temporaire sont transférés dans le dossier des fichiers et tous les fichiers texte du dossier temporaire sont omis au moment du transfert. Ensuite, exécutez la commande 'ls files' pour vérifier quels fichiers sont transférés du dossier temporaire vers le dossier files.

la température
rsync -a temp/ files/ --include=*.csv --exclude=*.txt
ls fichiers

La sortie suivante montre que le dossier temporaire contient deux fichiers CSV, deux fichiers texte et deux fichiers BASH. Le dossier des fichiers est vide avant le transfert et deux fichiers CSV et deux fichiers BASH sont transférés :

Supprimer les fichiers et dossiers sources après le transfert

Dans les commandes 'rsync' précédentes, les fichiers et dossiers source restent à l'emplacement source après le transfert vers l'emplacement de destination. Mais parfois, cela nécessite de transférer définitivement les fichiers et dossiers vers l'emplacement de destination. Cette tâche peut être effectuée à l'aide de l'option –remove-source-files avec la commande « rsync ». Exécutez la commande 'ls' pour vérifier tous les fichiers et dossiers de l'emplacement actuel. Exécutez la commande 'ls temp' pour vérifier les fichiers et dossiers du dossier temp. Ensuite, exécutez la commande 'rsync' avec l'option -remove-source-files pour supprimer les fichiers et dossiers de l'emplacement source après avoir terminé le transfert. Exécutez à nouveau la commande 'ls' pour vérifier si le fichier source est supprimé de l'emplacement source ou non.

ls
la température
rsync employes.csv temp/ --remove-source-files
ls

La sortie suivante montre que le fichier « employees.csv » de l'emplacement actuel est transféré dans le dossier temporaire et que le fichier « employees.csv » est supprimé de l'emplacement source après le transfert :

Conclusion

Le 'rsync' est un outil très utile de Linux qui facilite la tâche de transmission des fichiers et des dossiers d'un emplacement à un autre en utilisant différentes options. Les méthodes d'utilisation de la commande 'rsync' pour transférer les fichiers et les dossiers d'un emplacement à un autre en les compressant, en définissant la taille des fichiers et des dossiers, en définissant le type de fichier, en définissant la limite de bande passante, etc. sont présentées dans 15 exemples simples de ce tutoriel. Ce tutoriel aide les utilisateurs de Linux à connaître correctement les utilisations de base de la commande 'rsync' sous Linux.