Rsync Linux : Exemples d'utilisation et de commandes

L'utilisation des commandes sous Linux est plus que naturelle puisque celles-ci sont au cœur de Linux depuis de nombreuses années, c'est pourquoi nous devons être conscients de la manière dont nous utilisons ces commandes car, de même que certaines sont pratiques pour des tâches fondamentales, d'autres peuvent être dangereux si nous ne les gérons pas correctement. L'une des commandes Linux les plus fonctionnelles est le protocole rsync que Solvetic vous expliquera en détail tout au long de ce didacticiel. Voyons d'abord qu'est-ce que rsync.

Actuellement, maintenir une infrastructure de toute taille sans aucune sauvegarde peut être considéré comme fou, un disque peut tomber en panne à tout moment et vous pourriez perdre des informations aussi précieuses que la comptabilité de l'entreprise. Dans cet article, nous expliquerons comment utiliser Rsync, l'un des meilleurs outils de sauvegarde sur les systèmes * nix. Nous verrons des exemples les plus basiques aux plus avancés avec des scripts et des exemples que vous pouvez appliquer dans votre environnement de travail. Ce sera un manuel pour savoir comment utiliser rysnc.

Le besoin d'avoir les mêmes informations à différents endroits est de plus en plus fort, ceci parce que notre espace de travail est variable et nous voulons avoir nos outils toujours avec nous ou même comme mesures de sauvegarde.

Qu'est-ce que rsync ?C'est un outil open source pour transférer des fichiers et des répertoires entre un emplacement et un autre. Ses avantages reposent principalement sur la compression des informations à envoyer, il permet d'effectuer le transfert via un canal SSH et il ne transfère que les fichiers et morceaux de fichiers qui ont été modifiés au lieu de transférer à nouveau l'intégralité du fichier, quelque chose similaire à ce qui se passe lors du transfert des différences dans un fichier sous contrôle de version Git.

La commande rsync (Remote Sync) est une commande développée pour les tâches de copie et de synchronisation de fichiers et de répertoires à distance ou localement sur les systèmes Linux ou UNIX.

Avec cette commande, nous pouvons faire des copies à partir de :

  • Localement
  • Utiliser un shell distant
  • Via un démon rsync distant

Rsync utiliseParmi les différentes utilisations de rsync figurent les suivantes :

  • Sauvegardes automatisées sur des serveurs ou des disques distants.
  • Synchronisation de fichiers et de répertoires à distance.
  • Transfert de fichiers commun.

Avantages de Rsync

  • Il est plus rapide que scp (Secure Copy) car rsync utilise un protocole de téléchargement qui permet de ne transférer que la différence entre les fichiers, la première fois il transfère l'intégralité du fichier pour la deuxième fois uniquement les modifications qui peuvent exister.
  • Il est conçu pour les sauvegardes à distance.
  • Prend en charge la copie de toutes les autorisations de fichiers, par exemple, le propriétaire, les groupes logiciels et le lien physique.
  • Utilisez moins de bande passante en utilisant la compression lors de l'envoi de fichiers.

Rsync dispose d'une fonctionnalité de transfert delta qui permet de réduire la quantité de données envoyées via le réseau permettant uniquement les différences entre les fichiers source et les fichiers existants dans la destination distante à envoyer, c'est pourquoi rsync est idéal pour la sauvegarde et la duplication.
Rsync agit dans le processus de recherche de fichiers à transférer à l'aide d'un algorithme lqquick checkqq, chargé de rechercher les fichiers ayant subi une modification.

Fonctionnalités RsyncCertaines de ses principales caractéristiques sont :

  • Intègre des fonctions d'exclusion d'options similaires à GNU tar
  • Il prend en charge la copie de liens, d'appareils, de propriétaires, de groupes et d'autorisations Linux
  • Ajout d'un mode d'exclusion CVS qui permet d'ignorer les mêmes fichiers que CVS ignorerait dans sa fonction
  • Ne nécessite pas de privilèges de superutilisateur (root)
  • Nous pouvons utiliser un shell distant comme ssh ou rsh
  • Fournit un pipeline de transferts de fichiers pour minimiser les coûts de latence du réseau
  • Prend en charge les démons rsync authentifiés ou anonymes
  • C'est plus rapide que scp

Nous allons voir comment utiliser les paramètres rsync et rsync pour pouvoir effectuer des tâches telles que rsync copier uniquement les nouveaux fichiers ou rsync supprimer les fichiers cibles.

1. Comment utiliser rsync

La syntaxe d'utilisation de cette commande est la suivante :

 destination des ressources des options rsync 
Variables RsyncEn utilisant cette syntaxe, nous pouvons ajouter des variables telles que :

  • -v : mode verbeux.
  • -r : cette option copie les données de manière récursive sans laisser d'horodatage ni d'autorisation pendant le processus.
  • -a : mode fichier qui permet la copie récursive de fichiers et préserve les liens symboliques, les autorisations de fichier, la propriété des utilisateurs et des groupes et les horodatages.
  • -z : Cette option compresse les données du fichier.
  • -h : mode lisible par l'homme, sortie des nombres dans un format lisible par l'homme.

Voyons maintenant quelques exemples d'utilisation de cette commande. À la fin du tutoriel, Solvetic vous donnera d'autres paramètres pour utiliser rsync sous Linux.

2. Comment installer rsync

Étape 1
Dans la plupart des systèmes actuels, rsync est installé par défaut, mais si ce n'est pas le cas, nous pouvons exécuter ce qui suit :

 yum install rsync (Red Hat - CentOS - Fedora) apt-get install rsync (Debian - Ubuntu)

AGRANDIR

Étape 2
Dans tous les cas, nous devons confirmer l'installation de rsync, dans certains systèmes comme Ubuntu 20, il vient déjà par défaut :

3. Copier des fichiers et copier des répertoires avec rsync


La première utilisation de rsync est de copier ou de synchroniser un fichier ou un répertoire localement. Voyons comment copier des fichiers rsync, copier des répertoires avec rsync et synchroniser deux répertoires avec rsync.

Étape 1
Pour cela, nous exécuterons ce qui suit

 rsync -zvh "fichier" "destination" 

Étape 2
Là, nous pouvons voir des détails tels que:

  • Données envoyées
  • Quantité de données reçues
  • Vitesse de transfert
  • Taille globale

Étape 3
S'il s'agit de copier un répertoire localement, nous exécuterons ce qui suit :

 rsync -zvh "répertoire" "destination" 

4. Copiez ou synchronisez les dossiers rsync distants ou le répertoire distant

Étape 1
Nous pouvons copier ou synchroniser des fichiers localement sur un ordinateur distant, pour cela nous utiliserons la syntaxe suivante :

 rsync -avz file /[email protected]: /destination/ 

Étape 2
Chaque fois que nous utilisons l'adresse IP distante, nous devons entrer le mot de passe racine dudit ordinateur distant. Maintenant, si nous allons copier un répertoire distant sur notre serveur local, nous utiliserons la syntaxe suivante :

 rsync -azvh [email protected] : / destination / répertoire / 

5. Comment utiliser Rsync SSH


SSH (Secure Shell) est un mécanisme de sécurité supplémentaire pour le transfert de données, car SSH utilise une connexion sécurisée avec un cryptage hautement standardisé.

Étape 1
Si nous allons copier un fichier local sur un ordinateur distant avec SSH, nous devons utiliser l'option "-e" avec le nom du protocole que vous souhaitez utiliser :

 rsync -avzhe ssh [email protected]: / destination / répertoire 

Étape 2
Pour copier un fichier local sur un serveur distant, nous utiliserons la syntaxe suivante :

 rsync -avzhe ssh "fichier" [email protected]:/destination/ 

Étape 3
On peut valider dans le répertoire distant que le fichier ou répertoire a été copié :

AGRANDIR

6. Rsync afficher la progression du transfert de fichier ou de répertoire


C'est une méthode pour une meilleure gestion des transferts, ceci est réalisé avec le paramètre -progress :
 rsync -avzhe ssh --progress/source [email protected]:/destination 

7. Inclure ou exclure les répertoires rsync


Les options -include et -exclude sont des options qui nous permettent d'inclure ou d'exclure des fichiers, elles nous permettent également de spécifier les fichiers ou répertoires à inclure dans la synchronisation ou d'exclure les fichiers et dossiers qui ne doivent pas être transférés.

Son utilisation est la suivante :

 rsync -avze ssh --include 'Lettre *' --exclude '*' [email protected]: / destination 

8. Rsync supprimer des fichiers et des répertoires


Dans le cas où un fichier ou un répertoire n'est pas dans la source, mais est déjà disponible dans la destination, nous pouvons supprimer ce fichier ou répertoire pendant le processus de synchronisation, pour cela nous pouvons utiliser -delete afin de supprimer les éléments qui ne sont pas sur le ordinateur de destination, nous exécuterons les opérations suivantes :
 rsync -avz --delete [email protected]: / destination 

9. Rsync Limiter la taille du fichier


Avec le paramètre -max-size on peut indiquer quelle est la taille maximale des objets à transférer avec rsync, cela permet de contrôler l'espace distant :
 rsync -avzhe ssh --max-size = '300k' / source / [email protected]: / destination 

10. Rsync supprimer les fichiers source si le transfert a réussi

Avec la variable -remove-source-files, il est possible que les fichiers qui ont été synchronisés dans la source ne soient éliminés que si tout le processus a été correct, pour cela nous utiliserons ce qui suit. Nous voyons que le fichier source a été supprimé.

 rsync --remove-source-files -zvh "fichier" / destination / 

11. Exécutez rsync sans affecter les fichiers


C'est une option idéale pour les personnes qui ne connaissent pas complètement la puissance de rsync car elle montre ce que la commande va faire mais n'affecte pas l'origine, ceci est réalisé avec le paramètre -dry-run, par exemple. Nous pouvons voir que le fichier est toujours là.
 rsync --dry-run --remove-source-files -zvh "fichier" / destination / 

12. Limiter la bande passante rsync


Avec le paramètre -bwlimit, il sera possible de définir quel débit réseau rsync doit utiliser pour les tâches de synchronisation, ceci est réalisé comme suit :
 rsync --bwlimit = 200 -avzhe ssh/source/[email protected]:/destination 

13. Sauvegarde avec Rsync


Parfois, nous devons sauvegarder certaines informations avant d'apporter des modifications et en cas d'erreur de récupération à partir de la sauvegarde, nous commencerons par un laboratoire de sauvegarde d'un dossier à un autre. De cette façon, nous allons créer une sauvegarde avec rsync de manière complète et sûre.

Étape 1
Nous commençons par vérifier que rsync est installé.

 [utilisateur @ Solvetic ~] $ quel rsync / usr / bin / rsync
Étape 2
Nous allons créer 2 dossiers pour la source et la destination des fichiers.
 mkdir {sauvegarde1, sauvegarde2} 
Étape 3
Nous créons plusieurs fichiers dans le dossier backup1, dans ce cas la taille des fichiers n'a pas d'importance.
 [utilisateur @ Solvetic ~] $ touch backup1 / fichier {1… 75} 
Étape 4
Le répertoire doit contenir 75 fichiers. Nous faisons des sauvegardes.
 [user @ Solvetic ~] $ ls backup1 / file1 file14 file19 file23 file28 file32 file37 file41 file46 file50 file55 file6 file64 file69 file73 file10 file15 file2 file24 file29 file33 file38 file42 file47 file51 file56 file60 file65 file7 file74 file11 file16 file20 file25 file3 file34 file39 file43 file48 file52 file57 file61 file66 file70 file75 file12 file17 file21 file26 file30 file35 file4 file44 file49 file53 file58 file62 file67 file71 file8 file13 file18 file22 file27 file31 file36 file40 file45 file5 file54 file59 file63 file68 file72 file9
Étape 5
Pour sauvegarder les fichiers sur backup2, nous utilisons. La source doit se terminer par / sinon elle copierait son dossier et non le contenu.
 rsync -r backup1 / backup2 
Étape 6
SI nous entrons dans la sauvegarde2, nous pouvons voir les 75 fichiers, nous pouvons même vérifier qu'il s'agit de 2 répertoires identiques en utilisant diff.
 [utilisateur @ Solvetic ~] $ diff backup1 backup2 
Étape 7
En cas de création d'un softlink à partir d'un fichier du répertoire 1
 ln -s fichier30 fichier100 
Étape 8
L'utilisation de rsync avec -r ne synchronisera pas le lien logiciel dans ce cas que nous utilisons. Si nous regardons cette fois, nous aurons le softlink synchronisé.
 rsync -a backup1 / backup2 
NoterSi nous ne sommes pas sûrs de ce que nous allons prendre en charge, nous pouvons utiliser une simulation avec -n et en conjonction avec -v, cela peut être très utile.
 [utilisateur @ Solvetic ~] $ rsync -anv backup1 / backup2 envoi de la liste de fichiers incrémentielle envoyée 606 octets reçus 12 octets 1236,00 octets / s la taille totale est de 6 accélération est de 0,01 (DRY RUN)

14. Autres paramètres Rsync


Comme nous l'avons mentionné, voici quelques-uns des paramètres supplémentaires à utiliser avec rsync sous Linux :

Paramètres Rsync

  • -t, --times : garder la modification de l'heure
  • -g, --group : garder les groupes
  • -o, --owner : garder le propriétaire de l'objet
  • -B, --block-size = SIZE : force une taille de bloc de somme de contrôle fixe
  • T, --temp-dir = DIR : cette valeur crée des fichiers temporaires dans le répertoire DIR
  • z, --compress : compresse les données du fichier pendant le transfert
  • -4, --ipv4 : utiliser uniquement IPv4
  • -6, --ipv6 : utilisez uniquement IPv6

Il y a beaucoup plus de variables, mais elles sont plus que suffisantes pour que vous puissiez tirer le meilleur parti de rsync sur Linux. Nous avons vu comment utiliser rsync avec les options les plus utiles, ainsi que des outils tels que les scripts cron et bash, python nous aurons tout ce dont nous avons besoin pour faire nos sauvegardes sans avoir besoin d'outils tiers.

Vous contribuerez au développement du site, partager la page avec vos amis

wave wave wave wave wave