GNU/Linux >> Tutoriels Linux >  >> Linux

Comment utiliser la commande Linux Rsync (synchronisation à distance)

La commande Linux rsync transfère et synchronise efficacement des fichiers ou des répertoires entre une machine locale, un autre hôte, un shell distant ou toute combinaison de ceux-ci. Toute personne travaillant avec des systèmes basés sur Linux devrait utiliser cette commande puissante pour améliorer sa productivité. Avec l'aide de cet article, vous apprendrez tout ce dont vous avez besoin pour commencer à l'utiliser.

La synchronisation des dossiers ou la copie manuelle des fichiers peut prendre énormément de temps. L'utilitaire rsync peut faire la plupart du travail pour vous tout en ajoutant des fonctionnalités intéressantes pour gagner du temps. Même si vous perdez la connexion pendant le transfert, cet outil reprendra exactement là où il s'était arrêté, une fois la connexion rétablie.

Syntaxe de base

La syntaxe de base de rsync fonctionne comme suit :

rsync [optional modifiers] [SRC] [DEST]

Il existe plusieurs façons d'utiliser Linux rsync. Dans cet exemple, [modificateurs facultatifs] indiquer les actions à entreprendre, [SRC] est le répertoire source, et [DEST] est le répertoire ou la machine de destination.

Syntaxe de base pour Remote Shell

Lorsque vous utilisez un shell distant, tel que SSH ou RSH, la syntaxe rsync sera légèrement différente.

Pour accéder au shell distant (PULL ) utilisez la commande rsync :

rsync [optional modifiers] [USER@]HOST:SRC [DEST]

Pour accéder au shell distant (PUSH ) utilisez la commande rsync :

rsync [optional modifiers] SRC [USER@]HOST:[DEST]

Comment vérifier la version de Rsync

Avant de vérifier rsync, nous devons nous connecter au VPS que nous utiliserons. Ce didacticiel utile vous montrera comment procéder sur une machine Windows à l'aide de Putty SSH. Si vous utilisez un ordinateur MacOS ou Linux, utilisez plutôt le terminal.

Rsync est préinstallé avec de nombreuses distributions Linux. Pour vérifier si rsync est installé sur votre machine, exécutez la commande suivante :

rsync -version

Sur notre distribution Ubuntu, la commande a produit le résultat suivant :

rsync  version 3.1.3  protocol version 31

Cela signifie que la version 3.1.3 de rsync est déjà sur notre machine. Simple, non ?

Comment installer Rsync

Si votre machine n'a pas pré-installé rsync, vous pouvez le faire manuellement en une minute. Sur Debian distributions basées sur Ubuntu, vous pouvez le faire en utilisant la commande suivante :

apt-get install rsync

Sur les distributions basées sur rpm comme Fedora et CentOS utilisez la commande suivante :

yum install rsync

Sur MacOS utilisez la commande suivante :

brew install rsync

C'est ça! Linux rsync est prêt à synchroniser les données, à effectuer des transferts de fichiers et à supprimer des fichiers. Vous pouvez vérifier si l'installation a réussi à l'aide de la commande mentionnée précédemment :

rsync -version

Comment utiliser les commandes Rsync

Pour ce tutoriel, nous allons créer deux répertoires sur notre bureau Linux avec les noms original et dupliquer . Le répertoire d'origine contient trois fichiers alors que le doublon est vide. Voyons maintenant comment rsync créera de nouvelles façons d'augmenter la productivité.

Pour créer deux répertoires de test, utilisez les commandes suivantes :

cd ~
mkdir original
mkdir duplicate
touch original/file{1..3}

Si vous voulez revérifier, utilisez le ls commande pour lister tous les fichiers du répertoire :

ls original

Le résultat ressemblera à ceci :

file1
file2
file3

Si vous utilisez le ls commande avec le répertoire en double, les perspectives doivent être vides.

Maintenant que les répertoires sont configurés, essayons quelques commandes supplémentaires.

La commande suivante copiera ou synchronisera tous les fichiers dans l'original répertoire dans le duplicata répertoire.

rsync original/* duplicate/

* ordonne à la commande rsync de tout synchroniser dans le répertoire d'origine avec le doublon.

Si nous plaçons une nouvelle image ou un nouveau fichier dans le dossier d'origine et réexécutons la même commande, seule la nouvelle image sera copiée vers la destination.

Cette fonctionnalité est pratique lorsque vous copiez des fichiers sur un réseau avec une bande passante limitée.

Commandes les plus courantes de Rsync

Voici une liste des commandes les plus couramment utilisées avec rsync :

Cela active le mode d'archivage.

-a, --archive

Cela vous donne une sortie visuelle qui montre la progression du processus.

-v, --verbose

Cela sort dans un format lisible par l'homme.

-h, --human-readable format

Cela compresse les données du fichier pendant le transfert.

-z, --compress

Il s'agit de copier les données de manière récursive

-r

Comment utiliser les commandes Rsync avec les sous-répertoires

Gardez à l'esprit que la commande ci-dessus ne copiera que les fichiers de l'original répertoire principal du dossier, et non aucun des sous-répertoires.

Si vous souhaitez également copier les sous-répertoires, vous devrez utiliser cette commande :

rsync -r original/ duplicate/

Le -r (–récursif ) indique à rsync de tout copier, y compris les sous-répertoires et les fichiers de notre dossier d'origine.

Le / modificateur utilisé après original ordonne à rsync de copier le contenu du répertoire d'origine dans le dossier dupliqué.

Comment synchroniser des fichiers

Si vous souhaitez synchroniser des fichiers, c'est-à-dire copier des fichiers qui se trouvent dans le dossier de destination, mais qui ne sont pas dans l'original vers le dossier d'origine, utilisez la commande suivante :

rsync -r original duplicate/

Avec cette commande, nous pouvons être sûrs que les dossiers d'origine et dupliqués contiendront tous les mêmes fichiers.

Comment combiner les commandes Rsync

Une autre option utile est -a (–archive) car il peut être joint à de nombreuses autres commandes. Cela signifie qu'il ne se contentera pas de copier les fichiers, il copiera également les autorisations, les heures de modification et toute autre date.

Ajout du -a option avec -v ressemblerait à ceci :

rsync -av --dry-run  original/ duplicate/

Ne vous inquiétez pas, cela n'a l'air compliqué. Décomposons-le.

Cette commande n'affichera que les fichiers qui seront copiés sans apporter de modifications réelles. Avec cette commande, vous pouvez obtenir une liste des fichiers qui seront copiés.

Si tous les fichiers sont ceux que vous souhaitez copier, relancez la commande sans —dry-run .

—essai à vide (ou -n ) oblige rsync à effectuer un essai qui n'apporte aucune modification.

Autres options pour les commandes Rysnc

Lors de l'ajout du -a l'option -v option, faisant -av dans notre commande, augmente la verbosité. Voici à quoi cela devrait ressembler :

rsync -av original/ duplicate/

Si vous souhaitez synchroniser deux dossiers et supprimer les éléments du dossier en double, qui n'existent pas dans le dossier d'origine, ajoutez le –delete option, comme ceci :

rsync -av --delete  original/ duplicate/

Vous pouvez également exclure fichiers ou sous-répertoires spécifiques lorsque vous synchronisez deux dossiers. Faites cela en ajoutant -exclude= . Si vous devez spécifier plusieurs fichiers, séparez-les par une virgule.

rsync -av --exclude=file1,file2  original/ duplicate/

Vous pouvez également inclure fichiers ou sous-répertoires spécifiques lors de la synchronisation. Faites cela en ajoutant -include= . Vous pouvez également l'utiliser avec l'option -exclude=. L'exemple ci-dessous inclura des fichiers commençant par la lettre L et exclure tous les autres fichiers :

rsync -av --include=L* --exclude=*  original/ duplicate/

À l'aide de Rsync, vous pouvez également spécifier la taille du fichier pouvant être synchronisé. Pour ce faire, utilisez le –max-size choix :

rsync -av --max-size=10k original/ duplicate/

Utilisation de l'option -z (–compresser) consolidera les fichiers qui sont transférés sur le réseau. En bonus, voyons comment effectuer un transfert du serveur source vers un autre. La commande ressemblerait à ceci :

rsync -az ~/Desktop/Original [email protected]:~/tmp/

Comme mentionné précédemment -z compresse les fichiers, -a , ou simplement ajouter a à -z, garantira que toutes les autorisations sont également copiées.

~/Desktop/Original est la source. C'est un répertoire local - celui qui se trouve sur la machine à laquelle vous êtes connecté, et enfin, [email protected]:~/tmp/ indique la destination. [email protected] est l'adresse du serveur distant de destination, tandis que :~/tmp/ pointe vers un dossier spécifique sur cette machine.

Comment ajouter une barre de progression

En plus des commandes ci-dessus, vous pouvez ajouter -P qui combinera les options –progression et –partielle . Cela vous donnera une barre de progression pour les fichiers en cours de transfert et vous permettra également de reprendre tout transfert de fichier interrompu.

rsync -azP [SRC] [DEST]

Le résultat ressemblera à ceci :

sending incremental file list
./
file1
         0 100%    0.00kB/s   0:00:00   (xfer#1, to-check=1/3)
file2
         0 100%    0.00kB/s   0:00:00   (xfer#2, to-check=2/3)
file3
         0 100%    0.00kB/s   0:00:00   (xfer#3, to-check=3/3)

Ensuite, si nous exécutons à nouveau la commande, nous verrons une sortie plus courte. C'est parce qu'aucune nouvelle modification n'a été apportée. Le résultat ressemblera à ceci :

sending incremental file list
send 26 bytes received 5 bytes 1200.00 bytes/sec
total size is 0 speedup is 0.00

Si vous ne souhaitez transférer que certains fichiers, vous pouvez le spécifier avec la commande suivante :

touch original/file{1..5}
rsync -azP [SRC] [DEST]

Cela donnera une sortie similaire à la commande précédente, mais uniquement avec les fichiers spécifiés entre les accolades.

Comment créer une sauvegarde Rsync

Une autre commande importante consiste à créer une sauvegarde Rsync. Pour ce faire, combinez –backup avec le –répertoire afin que vous puissiez spécifier où les fichiers de sauvegarde seront stockés.

rsync -a --delete --backup --backup-dir=/path/to/backup /path/to/SRC [DEST]

Conclusion

Nous n'avons couvert que la pointe de l'iceberg en ce qui concerne les commandes Rsync. Linux Rsync est un utilitaire incroyablement puissant que tout administrateur de serveur ou développeur Linux devrait connaître. Nous avons tout couvert pour vous aider à démarrer, de l'installation aux commandes de base. Si vous souhaitez découvrir les fonctionnalités les plus avancées, consultez la documentation officielle.

Préparez-vous à améliorer votre productivité. Bonne chance avec votre projet.


Linux
  1. Comment utiliser la commande Linux grep

  2. Comment utiliser la commande history sous Linux

  3. Comment utiliser la commande Su sous Linux

  4. Commande SCP sous Linux :comment l'utiliser, avec des exemples

  5. La commande Linux rsync :comment l'utiliser

Comment utiliser la commande Linux nohup

Comment utiliser la commande Linux FTP pour transférer des fichiers

Comment utiliser du Command sous Linux

Comment utiliser la commande sysctl sous Linux

Comment utiliser la commande d'arrêt de Linux

Comment utiliser grep sous Linux