Comment utiliser RSYNC avec des exemples

Comment utiliser RSYNC avec des exemples
RSYNC est un outil populaire pour la synchronisation des fichiers, à la fois localement et à distance. Contrairement à d'autres outils de synchronisation, RSYNC utilise un algorithme intéressant qui minimise la consommation de bande passante. Il déplace simplement la partie du (s) fichier (s) qui a changé.

C'est un utilitaire puissant qui peut servir dans de nombreuses situations. Dans cet article, je vais montrer comment commencer avec RSync avec une démonstration. La démonstration sera effectuée sur Ubuntu 18.04.

Rsync

RSYNC signifie le terme synchronisation à distance. Malgré le nom, il peut gérer la synchronisation des fichiers à distance et localement. Le terme RSYNC est également utilisé pour se référer au protocole RSync que RSYNC utilise pour la synchronisation. Dans cet article, RSYNC désignera toujours l'outil, pas le protocole.

En raison de sa popularité, RSYNC est disponible sur presque tous les systèmes de type Linux et Unix. Il y a de fortes chances qu'il soit préinstallé. Sinon, faites un peu de recherche sur la façon d'installer RSYNC dans votre système.

Voici une liste restreinte des fonctionnalités que RSYNC offre.

  • Copie de répertoire
  • Configuration de sauvegarde facile
  • Peut travailler sur ssh
  • Peut fonctionner en tant que démon / serveur
  • Rétention d'autorisation de dossier

Utilisation de RSYNC

Avant de sauter dans RSYNC, nous avons besoin de fichiers factice pour travailler avec. Créons d'abord un répertoire factice.

$ mkdir -v primaire

Une fois créé, il est temps de créer une poignée de fichiers factice. Pour créer un fichier, j'utiliserai la commande tactile. En savoir plus sur la commande Touch.

$ touch dummy 1… 20

Tour! Nous sommes maintenant prêts à utiliser RSYNC pour effectuer des actions en utilisant ces fichiers factice.

Structure de commande RSYNC

RSYNC utilise la structure de commande suivante.

$ RSYNC

Synchroniser les répertoires locaux

Maintenant, il est temps d'utiliser RSYNC pour synchroniser des fichiers sur plusieurs destinations. Dans cet exemple, nous synchroniserons le contenu de dir_primary à dir_target.

$ MKDIR -V Target

Dites à RSYNC de synchroniser le contenu des deux répertoires.

$ RSync -v -r primaire / cible

Ici, nous avons utilisé deux arguments différents.

-V: Dit à RSYNC de se présenter en mode verbeux
-r: Récursif, requis pour la synchronisation du répertoire.

Dans cet exemple suivant, nous utiliserons un indicateur différent.

$ RSync -v -a primaire / cible

-un: Un drapeau combiné qui signifie «Archive».

En utilisant ce drapeau, RSYNC synchronisera le contenu récursivement tout en préservant tout symbolique, fichiers spéciaux / périphériques, temps de modification, autorisation de fichier, groupe, propriétaire, etc. Il est plus couramment utilisé que le drapeau «-r». Pour l'archivage, il s'agit d'une méthode plus recommandée.

Avez-vous remarqué que dans toutes les commandes que nous avons exécutées jusqu'à présent, dans le cas de Source, nous conservons toujours le «/» après le nom du répertoire? Il s'agit de dire à RSYNC que la source est tout le contenu du répertoire source. Si le «/» à la fin du répertoire source n'est pas utilisé, RSYNC créera simplement une copie du répertoire source au lieu de son contenu.

Vérifions-le avec un exemple.

$ RSYNC -V -a cible principale

Vérifiez le résultat de la sortie.

$ Target d'arbre /

La plupart du temps, ce n'est pas quelque chose dont nous avons besoin. Cependant, selon la situation, cela pourrait être utile.

Test RSSYNC

Avant d'exécuter une commande RSYNC, il est toujours important de vérifier que la commande effectuera l'action comme prévu. Si vous souhaitez tester l'action RSYNC pour une certaine commande, utilisez l'indicateur «-n» ou «-Dry-run».

$ RSYNC -AVN PRIMAIRE / Target
$ RSYNC -AVN cible primaire

Ici, la sortie montre ce que RSYNC fonctionnerait si la commande était réellement exécutée. Chaque fois que vous testez, n'oubliez pas d'utiliser le drapeau «-v» pour obtenir une représentation précise de ce qui se passe.

RSYNC sur une connexion distante

Ceci est une autre caractéristique intéressante des supports RSYNC. Si votre emplacement de sauvegarde est quelque part éloigné, vous pouvez facilement configurer RSYNC pour effectuer une sauvegarde sur l'emplacement distant via SSH. Cependant, les deux machines doivent faire installer RSYNC. De plus, les deux systèmes doivent également avoir des touches SSH définies.

Prêt? Commençons. Au début, c'est la synchronisation des archives.

$ RSYNC -A @:<
destination_dir>

Ici, cette opération est appelée «push» car elle pousse un répertoire du système local à un système distant. L'opposé est connu sous le nom de «traction».

$ RSYNC -A @:

RSYNC traite le premier argument comme la source, la seconde comme destination.

Options RSYNC utiles

RSYNC prend en charge une tonne d'options. Tous servent leur propre but. Cependant, pour la plupart, seules une poignée d'entre elles sont utilisées la plupart du temps. Dans cette section, jetons un coup d'œil à certaines options RSYNC utiles.

La plupart du temps, le ou les fichiers que vous êtes sur le point de vous synchroniser ne sont pas compressés. En utilisant la compression, vous pouvez économiser du temps et de la bande passante au prix d'un peu de puissance de traitement supplémentaire. RSYNC offre une compression par défaut. Pour effectuer une synchronisation compressée, utilisez le drapeau «-z».

$ RSYNC -AVZ

Ce drapeau intéressant combine la fonction du drapeau «-progress» et «-partial». Le premier est de montrer une barre de progression du transfert et la seconde consiste à permettre de reprendre le transfert interrompu. Ces deux fonctionnalités sont combinées dans le drapeau «-p».

$ RSYNC -AVZP

Maintenant, vérifions comment RSYNC gère la synchronisation des fichiers intelligemment. Exécutez à nouveau la commande précédente.

$ RSYNC -AVZP

Ici, RSync n'a pas re-télécharger tous les fichiers. Au lieu de cela, il a sauté ceux qui n'ont pas changé du tout. Dans cet exemple, il a sauté tous les fichiers car tous sont présents dans le répertoire de destination.

Et si vous supprimiez un fichier du répertoire source? Par défaut, RSYNC ne supprimera rien du répertoire de destination. Pour forcer les fichiers RSYNC Supprimer, utilisez l'indicateur «-delete». Cependant, utilisez la course à sec pour tester si la commande fonctionne comme vous le souhaitez.

$ RSYNC -AVN - Delete

Par défaut, RSYNC synchronisera chaque fichier / répertoire de la source vers le répertoire de destination. Dans certaines situations, vous pouvez inclure / exclure certains fichiers de la synchronisation. RSYNC propose des options pratiques comme «-exclude» et «-include» pour exclure / inclure certains fichiers. Passer le modèle de fichier comme valeur de ces arguments.

$ RSync -Avn --exclude = --inclure =

Vous pouvez également définir la plus grande taille de fichier que RSYNC devrait synchroniser. Pour ce faire, utilisez l'indicateur «-max-size» suivi de la taille du fichier.

$ RSYNC -AVN --max-size = '10k'

RSync a une autre caractéristique intéressante dans sa manche. N'a plus besoin du fichier source après la synchronisation? RSYNC peut le faire, pas de problème. Cependant, assurez-vous que vous n'utilisez pas RSync avec le drapeau «-delete». Sinon, RSYNC supprimera les fichiers synchronisés de la destination!

$ RSYNC -AV --Remove-Source-Files

Dernières pensées

Ce ne sont qu'un scénario commun et simple d'utilisation de RSYNC. Il offre bien plus que ça. Il est possible d'automatiser les opérations RSYNC en utilisant un démon RSYNC ou d'autres scripts. Espérons que ce guide a été utile pour commencer avec RSync.

Intéressé par plus de rsync? Eh bien, vous pouvez utiliser RSYNC comme copieur de fichiers. C'est plus efficace et intelligent que CP. Des fonctionnalités et une utilisation plus approfondies peuvent être trouvés dans la page RSync Man.

$ man rsync

Apprécier!