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

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

Commandes Rsync
Synchronisation De Fichiers Locaux Et Distants Rsync

Cet article explique dix l’utilisation de base et avancée de la rsync commande pour transférer vos fichiers à distance et localement dans Basé sur Linux Machines. Vous n’avez pas besoin d’être un racine utilisateur pour exécuter le rsync commander.

Quelques avantages et fonctionnalités de la commande Rsync

  • Il copie et synchronise efficacement les fichiers vers ou depuis un système distant.
  • Prend en charge la copie de liens, d’appareils, de propriétaires, de groupes et d’autorisations.
  • C’est plus rapide que scp (Copie sécurisée) car rsync utilise un protocole de mise à jour à distance qui permet de transférer uniquement les différences entre deux ensembles de fichiers. La première fois, il copie tout le contenu d’un fichier ou d’un répertoire de la source à la destination, mais la prochaine fois, il ne copie que les blocs et octets modifiés vers la destination.
  • Rsync consomme moins utilisation de la bande passante car il utilise la méthode de compression et de décompression lors de l’envoi et de la réception de données aux deux extrémités.
La syntaxe de base de la commande rsync
# rsync options source destination
Quelques options courantes utilisées avec les commandes rsync
  • -v : verbeux
  • -r : copie les données de manière récursive (mais ne conserve pas les horodatages et les autorisations lors du transfert de données.
  • -une : mode archive, qui permet de copier des fichiers de manière récursive et préserve également les liens symboliques, les autorisations de fichiers, les propriétés des utilisateurs et des groupes et les horodatages.
  • -z : compresser les données du fichier.
  • -h : lisibles par l’homme, les nombres de sortie dans un format lisible par l’homme.

[ You might also like: How to Sync Files/Directories Using Rsync with Non-standard SSH Port ]

Installer Rsync dans le système Linux

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

Publicité
$ sudo apt-get install rsync   [On Debian/Ubuntu & Mint] 
$ pacman -S rsync              [On Arch Linux]
$ emerge sys-apps/rsync        [On Gentoo]
$ sudo dnf install rsync       [On Fedora/CentOS/RHEL and Rocky Linux/AlmaLinux]
$ sudo zypper install rsync    [On openSUSE]

1. Copiez/synchronisez 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. Ici dans cet exemple, un nom de fichier backup.tar doit être copié ou synchronisé sur /tmp/sauvegardes/ dossier.

[[email protected]]# rsync -zvh backup.tar.gz /tmp/backups/

created directory /tmp/backups
backup.tar.gz

sent 224.54K bytes  received 70 bytes  449.21K bytes/sec
total size is 224.40K  speedup is 1.00

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

Fichiers Locaux Rsync
Fichiers Locaux Rsync
Copier/synchroniser un répertoire sur un ordinateur local

La commande suivante transférera ou synchronisera tous les fichiers d’un répertoire vers un autre répertoire sur la même machine. Ici dans cet exemple, /root/rpmpkgs contient des 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/

sending incremental file list
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

sent 3.47M bytes  received 96 bytes  2.32M bytes/sec
total size is 3.74M  speedup is 1.08
Répertoire Local Rsync
Répertoire Local Rsync

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

Copier un répertoire d’un serveur local vers un serveur distant

Cette commande synchronisera un répertoire d’une machine locale vers une machine distante. Par exemple, il y a un dossier sur votre ordinateur local « rpmpkgs » qui contient quelques RPM packages et que vous souhaitez que le contenu de ce répertoire local soit envoyé à un serveur distant, vous pouvez utiliser la commande suivante.

[[email protected]:~]# rsync -avzh /root/rpmpkgs [email protected]:/root/

The authenticity of host '192.168.0.141 (192.168.0.141)' can't be established.
ED25519 key fingerprint is SHA256:bH2tiWQn4S5o6qmZhmtXcBROV5TU5H4t2C42QDEMx1c.
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '192.168.0.141' (ED25519) to the list of known hosts.
[email protected]'s password: 
sending incremental file list
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

sent 3.74M bytes  received 96 bytes  439.88K bytes/sec
total size is 3.74M  speedup is 1.00
Système Distant D'Annuaire Rsync
Système Distant D&Rsquo;Annuaire Rsync
Copier/synchroniser un répertoire distant sur 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 se trouve sur un serveur distant est en cours de copie sur votre ordinateur local dans /tmp/myrpms.

[[email protected]:~]# rsync -avzh [email protected]:/root/rpmpkgs /tmp/myrpms

[email protected]'s password: 
receiving incremental file list
created directory /tmp/myrpms
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

sent 104 bytes  received 3.49M bytes  997.68K bytes/sec
total size is 3.74M  speedup is 1.07
Rsync Du Répertoire Distant Vers Le Local
Rsync Du Répertoire Distant Vers Le 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 être assuré que vos données sont transférées dans une connexion sécurisée avec cryptage afin que personne ne puisse lire vos données pendant qu’elles sont transférées par fil sur Internet.

[ You might also like: How to Secure and Harden OpenSSH Server ]

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

Copier un fichier d’un serveur distant vers un serveur local avec SSH

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

[[email protected]:~]# rsync -avzhe ssh [email protected]:/root/anaconda-ks.cfg /tmp

[email protected]'s password: 
receiving incremental file list
anaconda-ks.cfg

sent 43 bytes  received 1.10K bytes  325.43 bytes/sec
total size is 1.90K  speedup is 1.67
Rsync Copier Le Fichier Distant Vers Le Local
Rsync Copier Le Fichier Distant Vers Le Local
Copier un fichier d’un serveur local vers un serveur distant avec SSH
[[email protected]:~]# rsync -avzhe ssh backup.tar.gz [email protected]:/backups/

[email protected]'s password: 
sending incremental file list
created directory /backups
backup.tar.gz

sent 224.59K bytes  received 66 bytes  64.19K bytes/sec
total size is 224.40K  speedup is 1.00
Rsync Copier Le Fichier Local Vers La Télécommande
Rsync Copier Le Fichier Local Vers La Télécommande

[ You might also like: How to Use Rsync to Sync New or Changed/Modified Files in Linux ]

4. Afficher la progression lors du transfert de données avec rsync

Pour afficher la progression lors du transfert des données d’une machine à une autre, nous pouvons utiliser le ‘-le progrès’ option. Il affiche les fichiers et le temps restant pour terminer le transfert.

[[email protected]:/]# rsync -avzhe ssh --progress /root/rpmpkgs [email protected]:/root/rpmpkgs

[email protected]'s password: 
sending incremental file list
rpmpkgs/
rpmpkgs/httpd-2.4.37-40.module_el8.5.0+852+0aafc63b.x86_64.rpm
          1.47M 100%   31.80MB/s    0:00:00 (xfr#1, to-chk=3/5)
rpmpkgs/mod_ssl-2.4.37-40.module_el8.5.0+852+0aafc63b.x86_64.rpm
        138.01K 100%    2.69MB/s    0:00:00 (xfr#2, to-chk=2/5)
rpmpkgs/nagios-4.4.6-4.el8.x86_64.rpm
          2.01M 100%   18.45MB/s    0:00:00 (xfr#3, to-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, to-chk=0/5)

sent 3.74M bytes  received 96 bytes  1.50M bytes/sec
total size is 3.74M  speedup is 1.00
Progression De Rsync Lors De La Copie De Fichiers
Progression De Rsync Lors De La Copie De Fichiers

5. Utilisation des options –inclure et –exclure

Ces deux options nous permettent de comprendre et exclure fichiers en spécifiant des paramètres avec ces options nous aide à spécifier les fichiers ou répertoires que vous souhaitez inclure dans votre synchronisation et exclure les fichiers et dossiers avec lesquels vous ne souhaitez pas être transférés.

Ici, dans cet exemple, la commande rsync inclura uniquement les fichiers et le répertoire commençant par ‘R‘ et excluez tous les autres fichiers et répertoires.

[[email protected]:/]# rsync -avze ssh --include 'R*' --exclude '*' [email protected]:/var/lib/rpm/ /root/rpm

[email protected]'s password: 
receiving incremental file list
created directory /root/rpm
./
Requirename

sent 61 bytes  received 273,074 bytes  60,696.67 bytes/sec
total size is 761,856  speedup is 2.79
Rsync Inclure Et Exclure Des Fichiers
Rsync Inclure Et Exclure Des Fichiers

6. Utilisation de l’option –supprimer

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 sur la cible lors de la synchronisation.

Nous pouvons utiliser le ‘-effacer‘ option pour supprimer les fichiers qui ne se trouvent pas dans le répertoire source.

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

[[email protected]:~]# cd /root/rpm/
[[email protected]:~/rpm]# touch test.txt
[[email protected]:~/rpm]# rsync -avz --delete [email protected]:/var/lib/rpm/ /root/rpm/

[email protected]'s password: 
receiving incremental file list
deleting test.txt
./
.dbenv.lock
.rpm.lock
Basenames
Conflictname
Dirnames
Enhancename
Filetriggername
Group
Installtid
Name
Obsoletename
Packages
Providename
Sha1header
Sigmd5
Suggestname
Supplementname
Transfiletriggername
Triggername
__db.001
__db.002
__db.003

sent 445 bytes  received 18,543,954 bytes  2,472,586.53 bytes/sec
total size is 71,151,616  speedup is 3.84

La cible a le nouveau fichier appelé test.txt, lors de la synchronisation avec la source avec le ‘-effacer‘, il a supprimé le fichier test.txt.

Option De Suppression Rsync
Option De Suppression Rsync

7. Définir 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 maximale du fichier est 200k, donc cette commande ne transférera que les fichiers qui sont égaux ou inférieurs à 200k.

[[email protected]:~]# rsync -avzhe ssh --max-size="200k" /var/lib/rpm/ [email protected]:/root/tmprpm

[email protected]'s password: 
sending incremental file list
created directory /root/tmprpm
./
.dbenv.lock
.rpm.lock
Conflictname
Enhancename
Filetriggername
Group
Installtid
Name
Obsoletename
Recommendname
Requirename
Sha1header
Sigmd5
Suggestname
Supplementname
Transfiletriggername
Triggername
__db.002

sent 129.52K bytes  received 396 bytes  28.87K bytes/sec
total size is 71.15M  speedup is 547.66
Rsync Définir La Taille Maximale Du Transfert De Fichiers
Rsync Définir La Taille Maximale Du Transfert De Fichiers

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’avez synchronisée avec votre serveur de sauvegarde, maintenant vous ne voulez pas conserver cette copie locale de sauvegarde sur votre serveur Web.

Alors, allez-vous attendre la fin du transfert, puis supprimer ce fichier de sauvegarde local manuellement ? Bien sûr que non. Cette suppression automatique peut se faire à l’aide du ‘–remove-source-files‘option.

[[email protected]:~]# rsync --remove-source-files -zvh backup.tar.gz [email protected]:/tmp/backups/

[email protected]'s password: 
backup.tar.gz

sent 795 bytes  received 2.33K bytes  894.29 bytes/sec
total size is 267.30K  speedup is 85.40

[[email protected]:~]# ls -l backup.tar.gz

ls: cannot access 'backup.tar.gz': No such file or directory
Rsync Supprimer Le Fichier Source Après Le Transfert
Rsync Supprimer Le Fichier Source Après Le Transfert

9. Faites un essai avec rsync

Si vous êtes un débutant 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 annuler peut être un travail fastidieux.

[ You might also like: How to Sync Two Apache Web Servers/Websites Using Rsync ]

L’utilisation de cette option n’apportera aucune modification aux fichiers et affichera la sortie de la commande, si la sortie montre exactement la même chose que vous voulez faire, vous pouvez supprimer le ‘-à sec‘ à partir de votre commande et exécutez-le sur le terminal.

[[email protected]:~]# rsync --dry-run --remove-source-files -zvh backup.tar.gz [email protected]:/tmp/backups/

[email protected]'s password: 
backup.tar.gz

sent 50 bytes  received 19 bytes  19.71 bytes/sec
total size is 267.30K  speedup is 3,873.97 (DRY RUN)
Essai À Sec De Rsync
Essai À Sec De Rsync

10. Rsync Définir la limite de bande passante et transférer le fichier

Vous pouvez définir la limite de bande passante lors du transfert de données d’une machine à une autre à l’aide de ‘–wlimit‘option. Cette option nous aide à limiter E/S bande passante.

[[email protected]]# rsync --bwlimit=100 -avzhe ssh  /var/lib/rpm/  [email protected]:/root/tmprpm/
[email protected]'s password:
sending incremental file list
sent 324 bytes  received 12 bytes  61.09 bytes/sec
total size is 38.08M  speedup is 113347.05

De plus, par défaut, rsync synchronise uniquement les blocs et les octets modifiés, si vous souhaitez explicitement synchroniser l’ensemble du fichier, vous utilisez le ‘-W‘ option avec elle.

[[email protected]]# rsync -zvhW backup.tar /tmp/backups/backup.tar
backup.tar
sent 14.71M bytes  received 31 bytes  3.27M bytes/sec
total size is 16.18M  speedup is 1.10

C’est tout avec rsync maintenant, vous pouvez voir pages de manuel pour plus d’options. Restez connecté avec Tecmint pour des tutoriels plus passionnants et intéressants à l’avenir. Laissez votre commentaires et suggestions.

.

5/5 - (1 vote)
Publicité
Article précédentPlongez vos orteils dans le monde de l’anime
Article suivantLes six principaux avantages d’une Seedbox.
Avatar De Violette Laurent
Violette Laurent est une blogueuse tech nantaise diplômée en communication de masse et douée pour l'écriture. Elle est la rédactrice en chef de fr.techtribune.net. Les sujets de prédilection de Violette sont la technologie et la cryptographie. Elle est également une grande fan d'Anime et de Manga.

LAISSER UN COMMENTAIRE

S'il vous plaît entrez votre commentaire!
S'il vous plaît entrez votre nom ici