10 Exemples pratiques de la commande RSYNC dans Linux

10 Exemples pratiques de la commande RSYNC dans Linux

Rsync (Synchronisation à distance) est la commande la plus couramment utilisée pour copier et synchroniser les fichiers et les répertoires à distance ainsi que pour localement dans Linux/ /Unix systèmes.

Avec l'aide du rsync Commande, vous pouvez copier et synchroniser vos données à distance et localement entre les répertoires, les disques et les réseaux, effectuer des sauvegardes de données et miroir entre deux machines Linux.

Synchronisation des fichiers locaux et distants RSYNC

Cet article explique dix Utilisation de base et avancée de la rsync commande pour transférer vos fichiers à distance et localement Linux Machines. Vous n'avez pas besoin d'être un racine Utilisateur pour exécuter le rsync commande.

Quelques avantages et fonctionnalités de la commande rsync

  • Il copie et synchronise efficacement les fichiers avec ou depuis un système distant.
  • Prend en charge la copie des liens, des appareils, des propriétaires, des groupes et des autorisations.
  • C'est plus rapide que SCP (Copie sécurisée) parce que rsync utilise un protocole à télécommande qui permet de transférer uniquement les différences entre deux ensembles de fichiers. La première fois, il copie l'ensemble du contenu d'un fichier ou d'un répertoire de la source à la destination, mais de la prochaine fois, il copie uniquement les blocs modifiés et les octets vers la destination.
  • RSYNC consomme moins d'utilisation de la bande passante car il utilise la méthode de compression et de décompression tout en envoyant et en recevant des données aux deux extrémités.
La syntaxe de base de la commande rsync
# # RSSYNC Options Source Destination
Quelques options courantes utilisées avec les commandes RSYNC
  • -V : verbeux
  • -r : copie les données récursivement (mais ne préserve pas les horodatages et la permission lors du transfert de données.
  • -un : Mode des archives, qui permet de copier des fichiers récursivement et il préserve également les liens symboliques, les autorisations de fichiers, les propriétaires d'utilisateurs et de groupe et les horodatages.
  • -z : compresser les données de fichiers.
  • -H : lisible par l'homme, nombres de sortie dans un format lisible par l'homme.

[Vous pourriez également aimer: comment synchroniser des fichiers / répertoires à l'aide de RSYNC avec le port SSH non standard]

Installez RSYNC dans le système Linux

Nous pouvons installer le rsync Package à l'aide de la commande suivante dans votre distribution Linux.

$ sudo apt-get install rsync [sur debian / ubuntu & mint] $ pacman -s rsync [sur arch linux] $ émerge sys-apps / rsync [sur gentoo] $ sudo yum installer rsync [sur fedora / centos / rhel et rocky Linux / almalinux] $ sudo zypper installer rsync [sur opensuse] 

1. Copier / synchroniser les fichiers et le répertoire localement

Copier / synchroniser un fichier sur un ordinateur local

La commande suivante synchronisera un seul fichier sur une machine locale d'un emplacement à un autre emplacement. Ici, dans cet exemple, un nom de fichier sauvegarde.le goudron doit être copié ou synchronisé avec / tmp / sauvegardes / dossier.

[[Protégé par e-mail]] # RSYNC -ZVH Sauvegarde.le goudron.GZ / TMP / BACKUPS / Créé Directory / TMP / Backups Backup.le goudron.GZ a envoyé 224.54k octets ont reçu 70 octets 449.La taille totale des octets 21K / sec est de 224.La viande de 40 km est 1.00 

Dans l'exemple ci-dessus, vous pouvez voir que si la destination n'est pas déjà existante, RSYNC créera automatiquement un répertoire pour la destination.

Fichiers locaux RSYNC
Copier / synchroniser un répertoire sur l'ordinateur local

La commande suivante transférera ou synchronisera tous les fichiers d'un répertoire à un autre répertoire dans la même machine. Ici dans cet exemple, / root / rpmpkgs Contient certains fichiers de package RPM et vous souhaitez que ce répertoire soit copié à l'intérieur / tmp / sauvegardes / dossier.

[[Email Protected]] # RSYNC -AVZH / ROOT / RPMPKGS / TMP / BACKUPS / ENVOIR LISTE DE FICHIERS RPMPKGS / RPMPKGS / HTTPD-2.4.37-40.module_el8.5.0 + 852 + 0aafc63b.x86_64.RPM RPMPKGS / MOD_SSL-2.4.37-40.module_el8.5.0 + 852 + 0aafc63b.x86_64.RPM RPMPKGS / NAGIOS-4.4.6-4.EL8.x86_64.RPM RPMPKGS / NAGIOS-PLUGINS-2.3.3-5.EL8.x86_64.RPM a envoyé 3.47m octets ont reçu 96 octets 2.32 m octets / sec La taille totale est 3.La viande de 74 m est 1.08 
Répertoire local RSYNC

2. Copier / synchroniser les fichiers et le répertoire vers ou depuis un serveur

Copiez un répertoire depuis un serveur local vers un serveur distant

Cette commande synchronisera un répertoire d'une machine locale à une machine distante. Par exemple, Il y a un dossier dans votre ordinateur local "RPMPKGS«Cela contient un peu RPM packages et vous souhaitez que le contenu du répertoire local envoie à un serveur distant, vous pouvez utiliser la commande suivante.

[[Email Protected]: ~] # RSYNC -AVZH / ROOT / RPMPKGS [Protégé par e-mail]: / root / L'authenticité de l'hôte '192.168.0.141 (192.168.0.141) «ne peut pas être établi. ED25519 l'empreinte digitale clé est SHA256: bh2tiwqn4s5o6qmzhmtxcbrov5TU5H4T2C42QDEMX1C. Cette clé n'est connue par d'autres noms, vous êtes sûr de continuer à vous connecter (oui / non / [empreinte digitale])? Oui Avertissement: ajouté en permanence '192.168.0.141 '(ED25519) à la liste des hôtes connus. Le mot de passe de [Email Protected]: Envoi de la liste de fichiers incrémentiels RPMPKGS / RPMPKGS / HTTPD-2.4.37-40.module_el8.5.0 + 852 + 0aafc63b.x86_64.RPM RPMPKGS / MOD_SSL-2.4.37-40.module_el8.5.0 + 852 + 0aafc63b.x86_64.RPM RPMPKGS / NAGIOS-4.4.6-4.EL8.x86_64.RPM RPMPKGS / NAGIOS-PLUGINS-2.3.3-5.EL8.x86_64.RPM a envoyé 3.74m octets ont reçu 96 octets 439.La taille totale des octets de 88k / sec est 3.La viande de 74 m est 1.00 
Système distant du répertoire RSYNC
Copier / synchroniser un répertoire distant avec une machine locale

Cette commande vous aidera à synchroniser un répertoire distant avec un répertoire local. Ici, dans cet exemple, un répertoire / root / rpmpkgs qui est sur un serveur distant est copié dans votre ordinateur local dans / TMP / MYRPMS.

[[Email Protected]: ~] # RSYNC -AVZH [Protégé par e-mail]: / root / rpmpkgs / tmp / myRPMS [Protégé par e-mail] S: recevoir la liste de fichiers incrémentaux répertoire créé / HTTPD-2.4.37-40.module_el8.5.0 + 852 + 0aafc63b.x86_64.RPM RPMPKGS / MOD_SSL-2.4.37-40.module_el8.5.0 + 852 + 0aafc63b.x86_64.RPM RPMPKGS / NAGIOS-4.4.6-4.EL8.x86_64.RPM RPMPKGS / NAGIOS-PLUGINS-2.3.3-5.EL8.x86_64.RPM a envoyé 104 octets reçus 3.49m octets 997.68k octets / sec La taille totale est 3.La viande de 74 m est 1.07 
Répertoire distant RSYNC à local

3. Rsync sur ssh

Avec rsync, on peut utiliser Ssh (Enveloppe de protection) pour le transfert de données, en utilisant Ssh Protocole Lors du transfert de nos données, vous pouvez vous assurer que vos données sont transférées dans une connexion sécurisée avec le cryptage afin que personne ne puisse lire vos données pendant qu'elle est transférée sur le fil sur Internet.

[Vous pourriez également aimer: comment sécuriser et durcir le serveur OpenSSH]

Aussi quand nous utilisons rsync Nous devons fournir le utilisateur/ /racine mot de passe pour accomplir cette tâche particulière, donc en utilisant le Ssh L'option enverra vos connexions de manière cryptée afin que votre mot de passe sera en sécurité.

Copiez un fichier à partir d'un serveur distant vers un serveur local avec SSH

Pour spécifier un protocole avec rsync Vous devez donner le «-e”Option avec le nom du protocole que vous souhaitez utiliser. Ici, dans cet exemple, nous utiliserons le «ssh" avec le "-e”Option et effectuez un transfert de données.

[[Email Protected]: ~] # RSYNC -AVZHE SSH [Protégé par e-mail]: / root / anaconda-ks.CFG / TMP [Protégé par e-mail]: réception de la liste des fichiers incrémentiels anaconda-ks.CFG a envoyé 43 octets reçus 1.10k octets 325.La taille totale de 43 octets / sec est 1.La viande de 90k est 1.67 
RSYNC copier le fichier distant vers local
Copiez un fichier à partir d'un serveur local vers un serveur distant avec SSH
[[Protégé par e-mail]: ~] # RSYNC -Avzhe SSH Backup.le goudron.GZ [Protégé par e-mail]: / Backups / [PROTÉRÉ COMMENTAIR.le goudron.GZ a envoyé 224.59k octets ont reçu 66 octets 64.Les octets de 19K / sec totale sont de 224.La viande de 40 km est 1.00 
RSYNC Copiez le fichier local à distance

[Vous pourriez également aimer: comment utiliser RSYNC pour synchroniser des fichiers nouveaux ou modifiés / modifiés dans Linux]

4. Afficher les progrès lors du transfert de données avec RSYNC

Pour afficher les progrès tout en transférant les données d'une machine à une autre machine, nous pouvons utiliser le '-progrès' option. Il affiche les fichiers et le temps restant pour terminer le transfert.

[[Protégé par e-mail]: /] # # RSYNC -AVZHE SSH --PROGRESS / ROOT / RPMPKGS [Protégé par e-mail]: / root / rpmpkgs [Protégé par e-mail] S: Envoi de la liste de fichiers incrémentiels RPMPKGS / RPMPKGS / HTTPD-2.4.37-40.module_el8.5.0 + 852 + 0aafc63b.x86_64.RPM 1.47m 100% 31.80 Mo / s 0:00:00 (XFR # 1, à chk = 3/5) RPMPKGS / MOD_SSL-2.4.37-40.module_el8.5.0 + 852 + 0aafc63b.x86_64.RPM 138.01k 100% 2.69 Mo / s 0:00:00 (XFR # 2, à chk = 2/5) RPMPKGS / NAGIOS-4.4.6-4.EL8.x86_64.RPM 2.01m 100% 18.45 Mo / s 0:00:00 (XFR # 3, à chk = 1/5) RPMPKGS / NAGIOS-PLUGINS-2.3.3-5.EL8.x86_64.RPM 120.48k 100% 1.04MB / S 0:00:00 (XFR # 4, à chk = 0/5) Envoyé 3.74m octets ont reçu 96 octets 1.La taille totale des octets de 50m / sec est 3.La viande de 74 m est 1.00 
RSSYNC progresse lors de la copie de fichiers

5. Utilisation des options de comprend et d'éclude

Ces deux options nous permettent de inclure et exclure Les fichiers en spécifiant les paramètres avec cette option nous aident à spécifier les fichiers ou répertoires que vous souhaitez inclure dans votre synchronisation et exclure les fichiers et dossiers avec vous ne souhaitez pas être transféré.

Ici, dans cet exemple, la commande RSYNC inclura ces fichiers et répertoires uniquement qui commencent par 'R'et exclure tous les autres fichiers et répertoires.

[[Email Protected]: /] # RSYNC -avze ssh --include 'r *' --exclude '*' [e-mail protégé]: / var / lib / rpm / / root / rpm [e-mail protégée] Mot de passe: réception de la liste de fichiers incrémentiels répertoire créé / root / rpm ./ / Exiger Envoyé 61 octets reçus 273 074 octets 60 696.67 octets / sec La taille totale est de 761 856 accélération est 2.79 
RSYNC inclut et exclut les fichiers

6. Utilisation de l'option -delete

Si un fichier ou un répertoire n'existe pas à la source, mais existe déjà à la destination, vous souhaiterez peut-être supprimer ce fichier / répertoire existant à la cible lors de la synchronisation.

Nous pouvons utiliser le '-supprimer'Option pour supprimer des fichiers qui ne sont pas là dans le répertoire source.

La source et la cible sont synchronisées. Créez maintenant un nouveau fichier test.SMS à la cible.

[[e-mail protégé]: ~] # cd / root / rpm / [[e-mail protégé]: ~ / rpm] # Test Test.txt [[e-mail protégé]: ~ / rpm] # # rSync -Avz --Delete [Protégé par e-mail]: / var / lib / rpm / / root / rpm / [e-mail protégé] S: recevoir la liste de fichiers incrémentiels supprimer le test.SMS ./ / .dbenv.serrure .RPM.Lock Basenames CONTCHETNAME Dirnames Enhancename FileTriggerName Group Installtid Nom ObsoleTename Packages ProvideName Sha1Header Sigmd5 SuggetName SupplementName TransfileTriggerName Triggername __DB.001 __db.002 __db.003 Envoyé 445 octets reçus 18 543 954 octets 2 472 586.La taille totale de 53 octets / sec est de 71 151 616.84 

Target a le nouveau fichier appelé test.SMS, Lors de la synchronisation avec la source avec le '-supprimer'Option, il a supprimé le fichier test.SMS.

Option de suppression de RSYNC

7. Définissez la taille maximale des fichiers à transférer

Vous pouvez spécifier le Max Taille du fichier à transférer ou synchroniser. Vous pouvez le faire avec le "-taille max" option. Ici, dans cet exemple, la taille du fichier max est 200K, cette commande ne transfèrera donc que les fichiers qui sont égaux ou plus petits 200K.

[[Protégé par e-mail]: ~] # RSync -avzhe ssh --max-size = '200k' / var / lib / rpm / [e-mail protégé]: / root / tmppm [Protégé par e-mail] Mot de passe: Envoi de la liste des fichiers incrémentiels répertoire créé / root / tmppm ./ / .dbenv.serrure .RPM.LOCK CONTCHETNAME ENGLACENAME FileTriggernname Group InstallTid Nom obsoletEname RecomomEnNAME BesoinDame Sha1Header SIGMD5 SuggestName SupplementName TransFileTriggerName Triggername __DB.002 Envoyé 129.52k octets ont reçu 396 octets 28.87k octets / sec La taille totale est de 71.La vitesse de 15m est de 547.66 
RSYNC SET Taille de transfert de fichiers max

8. Supprimer automatiquement les fichiers source après un transfert réussi

Maintenant, supposons que vous ayez le serveur Web principal et un serveur de sauvegarde de données, vous avez créé une sauvegarde quotidienne et l'avoir synchronisée avec votre serveur de sauvegarde, maintenant vous ne voulez pas conserver cette copie locale de la sauvegarde dans votre serveur Web.

Alors, attendez-vous que le transfert se termine, puis supprimez ce fichier de sauvegarde local manuellement? Bien sûr que non. Cette suppression automatique peut être effectuée en utilisant le '-enlever les fichiers de source' option.

[[Protégé par e-mail]: ~] # # # # # RSYNC - Remonte-Source-Files -zvh Sauvegarde.le goudron.GZ [Protégé par e-mail]: / TMP / BACKUPS / [PROTÉRÉ COMMENTAIRE] Mot de passe: Sauvegarde.le goudron.GZ a envoyé 795 octets reçus 2.33k octets 894.La taille totale de 29 octets / sec est de 267.La vitesse de 30 km est de 85.40 [[Protégé par e-mail]: ~] # ls -l Sauvegarde.le goudron.gz LS: Impossible d'accéder à la sauvegarde.le goudron.GZ ': aucun fichier ou répertoire de ce type 
RSYNC Supprimer le fichier source après le transfert

9. Faites une course à sec avec RSYNC

Si vous êtes un débutant en utilisant RSYNC et que vous ne savez pas exactement ce que votre commande va faire. RSYNC pourrait vraiment gâcher les choses dans votre dossier de destination, puis faire une défaite peut être un travail fastidieux.

[Vous pourriez également aimer: comment synchroniser deux serveurs / sites Web Apache Web à l'aide de RSYNC]

L'utilisation de cette option n'apportera aucune modification dans les fichiers et affiche la sortie de la commande, si la sortie affiche exactement la même chose que vous souhaitez faire, vous pouvez supprimer le '-à sec'Option de votre commande et exécutez sur le terminal.

[[Protégé par e-mail]: ~] # RSync --à sec --Suppression des fichiers de source -zvh Sauvegarde.le goudron.GZ [Protégé par e-mail]: / TMP / BACKUPS / [PROTÉRÉ COMMENTAIRE] Mot de passe: Sauvegarde.le goudron.GZ a envoyé 50 octets a reçu 19 octets 19.La taille totale de 71 octets / sec est de 267.L'accélération de 30K est de 3 873.97 (Course à sec) 
RSSYNC Dry Run

dix. RSSYNC définir la limite de bande passante et le fichier de transfert

Vous pouvez définir la limite de bande passante tout en transférant les données d'une machine à une autre machine avec l'aide de '-bwlimit' option. Cette option nous aide à limiter E / S bande passante.

[[Email Protected]] # RSYNC --BWLIMIT = 100 -AVZHE SSH / VAR / LIB / RPM / [EMAIL Protégé]: / Root / TMPRPM / [Email Protected] S Mot de passe: Envoi de la liste de fichiers incrémentiels envoyés 324 octets reçus 12 octets 61.09 octets / sec La taille totale est de 38.La vitesse 08m est de 113347.05

De plus, par défaut, RSYNC synchronise les blocs et les octets modifiés uniquement, si vous souhaitez explicitement synchroniser le fichier entier, vous utilisez le 'utilisez'-W'Option avec ça.

[[Protégé par e-mail]] # RSYNC -ZVHW Sauvegarde.TAR / TMP / BACKUPS / BACKUP.sauvegarde du goudron.Tar envoyé 14.71m octets reçus 31 octets 3.La taille totale des octets de 27m / sec est 16.La vitesse de 18 m est 1.dix

C'est tout avec RSync maintenant, vous pouvez voir pages d'homme Pour plus d'options. Rester en contact avec Tecmint Pour des tutoriels plus excitants et intéressants à l'avenir. Laissez votre commentaires et suggestions.