Rysnc Guide

Utilisation de la commande rsync pour synchroniser des fichiers et des répertoires [11 Examples]

Publicado por
Comparte en redes sociales


rsync est un outil de ligne de commande gratuit qui vous permet de synchroniser des fichiers localement et à distance. Avec lui, vous pouvez transférer des fichiers et des répertoires.

Cela le rend très utile pour la migration des données, la réalisation de sauvegardes et la mise en miroir, ce qui le rend idéal pour les webmasters et les administrateurs pour les tâches récurrentes de transfert de données.

Cet article nous apprendra comment Rysnc fonctionne et donnera quelques exemples utiles.

Comment fonctionne rsync ?

rsync est un utilitaire de ligne de commande de synchronisation à distance pour les systèmes de type Unix. Il donne à l’utilisateur la possibilité de transférer/synchroniser des fichiers entre des machines ou deux hôtes de manière transparente.

Sous le capot, rsync utilise l’algorithme de transfert delta. Cet algorithme consiste à copier les différences entre les deux fichiers sur deux hôtes (source et destination). La source et la destination peuvent être locales ou distantes. La commande rsync peut effectuer des tâches de copie/synchronisation de données de deux manières. Ceux-ci sont:

  • Utiliser ssh, rsh pour copier/synchroniser entre deux hôtes.
  • Utiliser Démon TCP rsync pour copier/synchroniser.

Comme il est conçu pour fonctionner dans des systèmes de type Unix, il fonctionne également sous Linux.

Le processus étape par étape rsync utilise comme suit :

  • Rsync utilise SSH pour se connecter à l’hôte distant et demande un mot de passe.
  • Une fois connecté, le rsync de l’hôte distant communique avec la source.
  • Ces programmes détermineront ensuite les fichiers et répertoires qui doivent être synchronisés. Il utilise un algorithme de transfert delta pour vérifier la différence entre les fichiers.
image-159

Si la commande rsync ne trouve pas de fichier sur la télécommande mais pas sur l’hôte, elle le copie et le transfère sur le système hôte. De même, pour les fichiers déjà existants (à la fois sur l’hôte et sur la télécommande), il copiera la différence entre eux (c’est-à-dire les parties modifiées). Enfin, il ignorera les fichiers existants sur les deux systèmes sans aucune modification.

La commande rsync réalise des mises à jour incrémentielles en stockant la différence dans un fichier temporaire avant de le pousser vers la destination.

Avant de commencer:

  • Vous devez avoir les privilèges root ou sudo
  • Avoir accès au terminal/ligne de commande
  • Accès SSH pour exécuter en toute sécurité les commandes rsync
  • Vous avez également besoin de deux machines pour faire rsync.

Pour le tutoriel, nous allons utiliser Linux Mint 21.1 Vera. Vous pouvez facilement suivre le guide sans problème en utilisant n’importe quelle autre distribution Linux.

Pourquoi utiliser rsync sur Scp ?

Scp (copie sécurisée) est un protocole de ligne de commande populaire qui permet aux utilisateurs de copier des fichiers. Il suit une approche linéaire de la copie. Cela signifie qu’il copie simplement les fichiers de la source à la destination. Pour le faire en toute sécurité, il utilise SSH.

La syntaxe de la commande scp est la suivante :

scp option SOURCE DESTINATION

Cependant, la question demeure, pourquoi utiliser rsync plutôt que scp ?

Eh bien, il y a plusieurs avantages à utiliser rsync. Ces avantages comprennent :

  • Exécution plus rapide : rsync est plus rapide que scp car il utilise un protocole de mise à jour à distance. Cela lui permet de ne transférer que les différences plutôt que l’intégralité du fichier. Ainsi, si vous configurez une synchronisation régulière dans le temps, il vous suffit de faire une copie complète la première fois. À partir de la prochaine fois, il ne copie que les parties mises à jour à l’aide de l’algorithme de transfert delta.
  • Moins de consommation de bande passante : Comme rsync n’a pas besoin de recopier l’intégralité du fichier, cela réduit la consommation de bande passante. De plus, il utilise également des algorithmes de compression/décompression pour minimiser la taille du fichier pendant le transfert.
  • Plus d’options de ligne de commande : rsync bat également scp dans le nombre d’options de ligne de commande. Cela signifie que vous pouvez affiner rsync plus que scp.

En conclusion, rsync est un excellent outil de synchronisation incrémentale. L’outil scp est également utile pour transférer/synchroniser des fichiers en toute sécurité. Dans un scénario réel, scp convient aux tâches quotidiennes si vous recherchez une approche plus simple. Cependant, pour les tâches récurrentes, utilisez rsync.

Syntaxe de la commande rsync

La commande rsync est la suivante :

  • Du local au local : option rsync SOURCE DEST
  • Local à distant : option rsync SOURCE USER@HOST:DEST
  • Distant vers local : option rsync USER@HOST:SRC DEST
Leer también  Cómo la búsqueda inteligente puede afectar su negocio

Ici, les termes sont définis ci-dessous :

  • OPTION – Ce sont les options rsync
  • SOURCE – Répertoire des sources
  • DEST – Répertoire de destination
  • UTILISATEUR – Nom d’utilisateur distant
  • HÉBERGER – Nom d’hôte ou adresse IP distant

Les options sont des paramètres qui offrent des fonctionnalités supplémentaires à la commande. Par exemple, vous pouvez synchroniser les données de manière récursive avec le option -r. Cependant, le option -r ne synchronise pas la propriété des groupes et des utilisateurs, les horodatages, les autorisations ou les liens symboliques. Au lieu de cela, vous pouvez utiliser le -une optionqui exécute la commande en mode archive, garantissant que la propriété, les autorisations et les liens symboliques du fichier sont conservés lors de la copie.

Les autres options de rsync incluent :

  • -z : compresser les données pour économiser de l’espace
  • -h : fournit une sortie au format lisible par l’homme
  • -b : effectue une sauvegarde pendant le processus de synchronisation des données
  • -e : utiliser le protocole SSH pour les transferts de données à distance
  • -progrès: afficher la progression de la synchronisation des données
  • -v : demander à rsync d’afficher une sortie détaillée
  • n : effectuer un essai à blanc pour tester les paramètres et configurer la synchronisation des données
  • -q : supprimer la sortie et les options de la commande rsync

Installation de rsync

La plupart des systèmes Unix et Linux sont livrés avec rsync installé. Si votre système n’a pas rsync, vous pouvez l’installer en utilisant la ou les commandes suivantes.

Pour Debian/Ubuntu et Mint

sudo apt-get install rsync

Pour Arch Linux

pacman -S rsync

Sur Gentoo

emerge sys-apps/rsync

Sur CentOS/Fedora/REHL

sudo yum install rsync

Sur openSUSE

sudo zypper install rsync

Comme nous avons Linux Mint, rsync est pré-installé. Vous pouvez donc exécuter la commande rsync dans le terminal pour voir si elle est installée. Il expliquera ses capacités, ses options et d’autres informations vitales s’il est présent.

nitt ~
$ rsync
rsync  version 3.2.3  protocol version 31
Copyright (C) 1996-2020 by Andrew Tridgell, Wayne Davison, and others.
Web site: https://rsync.samba.org/
Capabilities:
    64-bit files, 64-bit inums, 64-bit timestamps, 64-bit long ints,
    socketpairs, hardlinks, hardlink-specials, symlinks, IPv6, atimes,
    batchfiles, inplace, append, ACLs, xattrs, optional protect-args, iconv,
    symtimes, prealloc, stop-at, no crtimes
Optimizations:
    SIMD, no asm, openssl-crypto
Checksum list:
    xxh128 xxh3 xxh64 (xxhash) md5 md4 none
Compress list:
    zstd lz4 zlibx zlib none

rsync comes with ABSOLUTELY NO WARRANTY.  This is free software, and you
are welcome to redistribute it under certain conditions.  See the GNU
General Public Licence for details.

rsync is a file transfer program capable of efficient remote update
via a fast differencing algorithm.

Voyons maintenant rsync en action avec différents cas d’utilisation.

Pour le tutoriel, nous allons créer deux répertoires.

  • répertoire-source
  • dest-répertoire

Pour cela, vous devez taper les commandes suivantes.

mkdir source-directory
mkdir dest-directory

De plus, nous devrons générer des fichiers pour faire fonctionner rsync. Créons donc des fichiers de test avec la commande ci-dessous.

touch source-directory/file{1..100}

Cela crée 100 fichiers vides dans le répertoire source. Vous pouvez le confirmer en entrant la commande ci-dessous.

ls source-directory
Output:
nitt rsync-tutorial
$ ls
dest-directory  source-directory
nitt rsync-tutorial
$ touch source-directory/file{1..100}
nitt rsync-tutorial
$ ls source-directory
file1    file18  file27  file36  file45  file54  file63  file72  file81  file90
file10   file19  file28  file37  file46  file55  file64  file73  file82  file91
file100  file2   file29  file38  file47  file56  file65  file74  file83  file92
file11   file20  file3   file39  file48  file57  file66  file75  file84  file93
file12   file21  file30  file4   file49  file58  file67  file76  file85  file94
file13   file22  file31  file40  file5   file59  file68  file77  file86  file95
file14   file23  file32  file41  file50  file6   file69  file78  file87  file96
file15   file24  file33  file42  file51  file60  file7   file79  file88  file97
file16   file25  file34  file43  file52  file61  file70  file8   file89  file98
file17   file26  file35  file44  file53  file62  file71  file80  file9   file99

Note: Nous avons gardé le répertoire dest vide.

Copier les répertoires localement de manière récursive

Même si rsync vise principalement à copier des fichiers entre un serveur local et distant, il est également utile pour copier des fichiers localement.

Dans ce cas, nous utiliserons la syntaxe rsync suivante.

option rsync SOURCE DESTINATION

Copiez les fichiers dans notre répertoire-source au dest-répertoire en exécutant la commande suivante.

rsync -r source-directory/ dest-directory

Ici, la commande copie «récursivement» les fichiers du répertoire-source au dest-répertoire.

nitt rsync-tutorial
$ ls
dest-directory  source-directory
nitt rsync-tutorial
$ ls dest-directory
nitt rsync-tutorial
$ ls source-directory
file1    file18  file27  file36  file45  file54  file63  file72  file81  file90
file10   file19  file28  file37  file46  file55  file64  file73  file82  file91
file100  file2   file29  file38  file47  file56  file65  file74  file83  file92
file11   file20  file3   file39  file48  file57  file66  file75  file84  file93
file12   file21  file30  file4   file49  file58  file67  file76  file85  file94
file13   file22  file31  file40  file5   file59  file68  file77  file86  file95
file14   file23  file32  file41  file50  file6   file69  file78  file87  file96
file15   file24  file33  file42  file51  file60  file7   file79  file88  file97
file16   file25  file34  file43  file52  file61  file70  file8   file89  file98
file17   file26  file35  file44  file53  file62  file71  file80  file9   file99
nitt rsync-tutorial
$ rsync -r source-directory/ dest-directory
nitt rsync-tutorial
$ ls dest-directory
file1    file18  file27  file36  file45  file54  file63  file72  file81  file90
file10   file19  file28  file37  file46  file55  file64  file73  file82  file91
file100  file2   file29  file38  file47  file56  file65  file74  file83  file92
file11   file20  file3   file39  file48  file57  file66  file75  file84  file93
file12   file21  file30  file4   file49  file58  file67  file76  file85  file94
file13   file22  file31  file40  file5   file59  file68  file77  file86  file95
file14   file23  file32  file41  file50  file6   file69  file78  file87  file96
file15   file24  file33  file42  file51  file60  file7   file79  file88  file97
file16   file25  file34  file43  file52  file61  file70  file8   file89  file98
file17   file26  file35  file44  file53  file62  file71  file80  file9   file99

Cela copie chaque fichier unique dans le répertoire-source au dest-répertoire.

Leer también  Los 7 mejores convertidores de DXF a DWG para sus gráficos vectoriales

Copier un seul fichier localement

Maintenant que nous avons appris à synchroniser deux répertoires, nous allons apprendre à copier un seul fichier.

Pour cela, nous allons éditer le fichier vide fichier1 dans le répertoire-source puis synchronisez-le avec le même fichier présent dans le dest-répertoire.

Pour modifier un fichier, tapez la commande suivante.

nano source-directory/file1

Maintenant, copiez-collez le texte suivant dans l’éditeur nano.

We're updating file1 in the source-directory.
Once we update, we'll push the new update to the dest-directory.
rsync doesn't need to re-copy the file using the delta-transfer algorithm.
This algorithm checks the differences and then updates destination files
accordingly.
So, once you save file1 in the source-directory, open file1 in
the dest-directory. It'll be empty.
However, if we check it after running rsync, you'll see that file1 in dest-directory
is updated.
cryptoshitcompra.com/wp-content/uploads/2023/02/1676685337_21_Utilisation-de-la-commande-rsync-pour-synchroniser-des-fichiers-et.png» alt=»mise à jour-fichier1-avec-texte» class=»wp-image-177054″ width=»800″ height=»466″/>
Ajouter du contenu à un fichier

Maintenant, fermez et enregistrez le fichier.

Copions maintenant le fichier en utilisant rsync.

sudo rsync -v --existing source-directory/file1 /dest-directory
#Output
nitt rsync-tutorial
$ sudo rsync -v --existing source-directory/file1 dest-directory
file1

sent 557 bytes  received 35 bytes  1,184.00 bytes/sec
total size is 474  speedup is 0.80

nitt rsync-tutorial
$ 

Comme vous l’avez peut-être remarqué, nous avons utilisé -existant option. Cela met à jour les fichiers existants. Si vous exécutez la commande sans -existantil ne sera pas mis à jour, même s’il s’exécute correctement.

Si le fichier unique que vous copiez n’existe pas dans le dossier de destination, vous devez exécuter la commande suivante.

rsync -v source-directory/newfile dest-directory
#Output
nitt rsync-tutorial
$ rsync -v source-directory/newfile dest-directory
newfile

sent 82 bytes  received 35 bytes  234.00 bytes/sec
total size is 0  speedup is 0.00

Copier plusieurs fichiers

Si vous avez l’intention de copier plusieurs fichiers, vous devez mentionner les chemins source des deux fichiers, suivis du répertoire cible.

Pour cela, nous allons créer deux nouveaux fichiers : nouveaufichier2 et nouveaufichier3dans le répertoire-source. Exécutez la commande suivante pour ce faire.

touch source-directory/newfile{2..3}

Maintenant, utilisez la commande suivante pour synchroniser plusieurs fichiers.

rsync -v source-directory/newfile2 source-directory/newfile3 dest-directory
#Output
nitt rsync-tutorial
$ rsync -v source-directory/newfile2 source-directory/newfile3 dest-directory
newfile2
newfile3

sent 135 bytes  received 54 bytes  378.00 bytes/sec
total size is 0  speedup is 0.00
nitt rsync-tutorial
$ 

Copier un fichier ou un répertoire de local à distant

La syntaxe rsync pour le transfert local vers distant est la suivante.

rsync option SOURCE USER@HOST:DEST

Comme vous pouvez le voir, vous devez connaître les adresse IP de la machine distante pour que cela fonctionne. De plus, vous devez ajouter l’adresse IP après le fichier source.

rsync -av /Projects/rsync-tutorial/source-directory 192.168.192.200: /Projects/rsync-tutorial/dest-directory

Avant de commencer le transfert, il vous demandera le mot de passe. Entrez-le pour continuer. De plus, si l’utilisateur est différent sur la machine distante, vous devez le mentionner avant l’adresse IP suivie de @.

rsync -av /Projects/rsync-tutorial/source-directory nithya@192.168.192.200: /Projects/rsync-tutorial/dest-directory

Si vous avez l’intention de copier plusieurs fichiers ou répertoires, vous devez répertorier les fichiers ou les chemins de répertoire. La syntaxe est ci-dessous.

rsync -av /Projects/rsync-tutorial/source-directory/newfile1 /Projects/rsync-tutorial/source-directory/newfile2 192.168.192.200: /Projects/rsync-tutorial/dest-directory

Protocoles spécifiques au transfert à distance

rsync vous permet de spécifier des protocoles de transfert de fichiers spécifiques. Pour ce faire, vous devez utiliser le option -esuivi du protocole.

Par exemple, si vous souhaitez utiliser le protocole ssh, vous devez ajouter -e ssh à la commande rsync.

rsync -e ssh /Projects/rsync-tutorial/source-directory 192.168.192.200: /Projects/rsync-tutorial/dest-directory

Copie d’un fichier ou d’un répertoire de distant vers local

La syntaxe rsync pour le transfert local vers distant est la suivante.

sync option USER@HOST:SRC DEST

Cela agit comme une demande d’extraction. Ainsi, pour obtenir les fichiers/répertoires requis d’un serveur distant vers votre ordinateur local, vous devez exécuter la commande suivante.

rsync -av 192.168.192.200: /Projects/rsync-tutorial/dest-directory /Projects/rsync-tutorial/source-directory

La commande extrait les fichiers dans le dossier de la machine distante. dest-répertoire à la machine locale répertoire source.

De même, vous pouvez extraire un fichier spécifique en le mentionnant via son chemin complet.

rsync -av 192.168.192.200: /Projects/rsync-tutorial/dest-directory/newfile4 /Projects/rsync-tutorial/source-directory

Pour copier plusieurs fichiers ou répertoires de local à distant, vous devez spécifier le chemin entre accolades (séparés par des virgules) après l’adresse IP du serveur.

rsync -av 192.168.192.200: {/Projects/rsync-tutorial/dest-directory/, /home/music/2023-music} /Projects/rsync-tutorial/source-directory

De même, vous pouvez également mentionner des fichiers.

Leer también  Capitalización de mercado de Microsoft en $ 2.6 billones, Synthesia obtiene $ 90 millones

Afficher la progression en direct pendant le transfert

C’est une bonne idée de voir la progression en direct pour les sauvegardes de données plus volumineuses. Pour cela, vous devez utiliser le -progrès drapeau. Ajoutez-le à la commande rsync et vous pourrez voir la vitesse de transfert, le temps restant et la quantité de données transférées.

rsync -av --progress 192.168.192.200: /Projects/rsync-tutorial/dest-directory /Projects/rsync-tutorial/source-directory

Supprimer les fichiers source une fois le transfert terminé

Vous pouvez utiliser le -remove-source-files drapeau pour supprimer les fichiers source après le transfert complet. Cela peut vous aider dans de nombreux scénarios, notamment lorsqu’il s’agit de sécuriser vos fichiers sans laisser de trace ou simplement de les utiliser pour libérer de l’espace.

rsync -av --remove-source-files 192.168.192.200: /Projects/rsync-tutorial/dest-directory /Projects/rsync-tutorial/source-directory

rsync essai à blanc

Rysnc vous permet également d’évaluer avant de faire une course réelle. La simulation vous permet de voir si vous faites ce qu’il faut. Après tout, vous ne voulez pas mettre à jour des fichiers par erreur ou même les supprimer.

Vous devez utiliser le –marche à sec possibilité de faire un essai à blanc. Ajoutez-le à la commande, suivi de la source et de la destination.

sudo rsync -v --dry-run source-directory/file1 dest-directory
nitt rsync-tutorial
$ sudo rsync -v --dry-run source-directory/file1 dest-directory
file1

sent 43 bytes  received 19 bytes  124.00 bytes/sec
total size is 474  speedup is 7.65 (DRY RUN)
nitt rsync-tutorial

La sortie est similaire à la façon dont nous l’avons exécutée auparavant. Cependant, vous remarquerez une mention de (EXÉCUTION À SEC) à la fin de la sortie.

Définir la taille de fichier minimale et maximale

Rysnc vous permet également de définir la taille de fichier minimale ou maximale pendant le transfert.

Donc, si vous souhaitez transférer avec une taille minimale de 15 Ko, vous devez utiliser –taille-min=15K.

rsync -av --min-size=15k 192.168.192.200: /Projects/rsync-tutorial/dest-directory /Projects/rsync-tutorial/source-directory

La commande ne copiera que les fichiers d’une taille de fichier minimale de 15 Ko. Si la taille du fichier est inférieure, il l’ignorera.

De même, vous pouvez utiliser le –indicateur de taille maximale pour définir la taille de fichier maximale.

rsync -av --max-size=450k 192.168.192.200: /Projects/rsync-tutorial/dest-directory /Projects/rsync-tutorial/source-directory

Ici, rsync ignorera les fichiers au-dessus de la taille de 450K.

Définir la limite de bande passante

Si vous effectuez d’autres tâches gourmandes en bande passante, vous pouvez configurer rysnc pour définir la limite de bande passante pour le transfert. Pour ce faire, utilisez le –bwlimit=Ko/s.

rsync -av --bwlimit=100 --progress 192.168.192.200: /Projects/rsync-tutorial/dest-directory /Projects/rsync-tutorial/source-directory

Ici, nous définissons la bande passante sur 100Kb/s lors du transfert.

Derniers mots

Cela nous amène à la fin de notre guide de commande rsync. Nous avons appris à utiliser rysnc et couvert efficacement de nombreuses commandes.

Cependant, rysnc offre bien plus que ce que nous avons couvert. C’est pourquoi vous voudrez peut-être aussi passer par le page de manuel rsyncoù chaque aspect de rsync est couvert.

Ensuite, consultez les feuilles de triche de la ligne de commande pour Windows, Linux et macOS.



Source link

Si quiere puede hacernos una donación por el trabajo que hacemos, lo apreciaremos mucho.

Direcciones de Billetera:

- BTC: 14xsuQRtT3Abek4zgDWZxJXs9VRdwxyPUS 

- USDT: TQmV9FyrcpeaZMro3M1yeEHnNjv7xKZDNe 

- BNB: 0x2fdb9034507b6d505d351a6f59d877040d0edb0f

- DOGE: D5SZesmFQGYVkE5trYYLF8hNPBgXgYcmrx 

También puede seguirnos en nuestras Redes sociales para mantenerse al tanto de los últimos post de la web:

-Twitter

- Telegram

Disclaimer: En Cryptoshitcompra.com no nos hacemos responsables de ninguna inversión de ningún visitante, nosotros simplemente damos información sobre Tokens, juegos NFT y criptomonedas, no recomendamos inversiones

Dejar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *