GNU/Linux >> Tutoriels Linux >  >> Linux

Commande Rsync sous Linux avec des exemples

rsync est un utilitaire de ligne de commande rapide et polyvalent pour synchroniser des fichiers et des répertoires entre deux emplacements via un shell distant, ou depuis/vers un démon Rsync distant. Il fournit un transfert de fichiers incrémentiel rapide en ne transférant que les différences entre la source et la destination.

Rsync peut être utilisé pour la mise en miroir des données, les sauvegardes incrémentielles, la copie de fichiers entre les systèmes et en remplacement de scp , sftp , et cp commandes.

Cet article explique comment utiliser rsync à travers des exemples pratiques et des explications détaillées sur les rsync les plus courants options.

Installation de Rsync #

Le rsync L'utilitaire est préinstallé sur la plupart des distributions Linux et macOS. Si vous n'avez pas rsync installé sur votre système, vous pouvez facilement l'installer à l'aide du gestionnaire de packages de votre distribution.

Installer Rsync sur Ubuntu et Debian #

sudo apt install rsync

Installer Rsync sur CentOS et Fedora #

sudo yum install rsync

Syntaxe de la commande Rsync #

Avant d'expliquer comment utiliser le rsync commande, commençons par revoir la syntaxe de base.

Le rsync les expressions utilitaires prennent la forme suivante :

Local to Local:  rsync [OPTION]... [SRC]... DEST
Local to Remote: rsync [OPTION]... [SRC]... [USER@]HOST:DEST
Remote to Local: rsync [OPTION]... [USER@]HOST:SRC... [DEST]
  • OPTION - Les options de rsync.
  • SRC - Répertoire des sources.
  • DEST - Répertoire de destination.
  • USER - Nom d'utilisateur distant.
  • HOST - Nom d'hôte ou adresse IP distant.

rsync fournit un certain nombre d'options qui contrôlent le comportement de la commande. Les options les plus utilisées sont :

  • -a , --archive , mode archive, équivalent à -rlptgoD . Cette option indique à rsync pour synchroniser les répertoires de manière récursive, transférer des périphériques spéciaux et de blocage, conserver les liens symboliques, les heures de modification, les groupes, la propriété et les autorisations.
  • -z , --compress . Cette option force rsync pour comprimer les données lors de leur envoi vers la machine de destination. N'utilisez cette option que si la connexion à la machine distante est lente.
  • -P , équivalent à --partial --progress . Lorsque cette option est utilisée, rsync affiche une barre de progression pendant le transfert et conserve les fichiers partiellement transférés. Il est utile lors du transfert de fichiers volumineux via des connexions réseau lentes ou instables.
  • --delete . Lorsque cette option est utilisée, rsync supprime les fichiers superflus de l'emplacement de destination. C'est utile pour la mise en miroir.
  • -q , --quiet . Utilisez cette option si vous souhaitez supprimer les messages sans erreur.
  • -e . Cette option vous permet de choisir un shell distant différent. Par défaut, rsync est configuré pour utiliser ssh.

Numéro d'utilisation de base de Rsync

Le cas d'utilisation le plus basique de rsync consiste à copier un seul fichier d'un emplacement local à un autre. Voici un exemple :

rsync -a /opt/filename.zip /tmp/

L'utilisateur qui exécute la commande doit disposer d'autorisations de lecture sur l'emplacement source et d'autorisations d'écriture sur la destination.

L'omission du nom de fichier de l'emplacement de destination copie le fichier avec le nom actuel. Si vous souhaitez enregistrer le fichier sous un autre nom, indiquez le nouveau nom sur la partie destination :

rsync -a /opt/filename.zip /tmp/newfilename.zip

La vraie puissance de rsync vient lors de la synchronisation des répertoires. L'exemple ci-dessous montre comment créer une sauvegarde locale des fichiers du site Web :

rsync -a /var/www/domain.com/public_html/ /var/www/domain.com/public_html_backup/

Si le répertoire de destination n'existe pas, rsync va le créer.

Il convient de mentionner que rsync donne un traitement différent aux répertoires source avec une barre oblique finale (/ ). Si le répertoire source a une barre oblique finale, la commande copiera uniquement le contenu du répertoire dans le répertoire de destination. Lorsque la barre oblique finale est omise, rsync copie le répertoire source dans le répertoire de destination.

Utilisation de rsync pour synchroniser les données depuis/vers une machine distante #

Lors de l'utilisation de rsync pour transférer des données à distance, il doit être installé à la fois sur la machine source et sur la machine de destination. Les nouvelles versions de rsync sont configurés pour utiliser SSH comme shell distant par défaut.

Dans l'exemple suivant, nous transférons un répertoire d'une machine locale vers une machine distante :

rsync -a /opt/media/ remote_user@remote_host_or_ip:/opt/media/
Si vous n'avez pas défini de connexion SSH sans mot de passe sur la machine distante, il vous sera demandé de saisir le mot de passe utilisateur.

Pour transférer des données d'une machine distante vers une machine locale, utilisez l'emplacement distant comme source :

rsync -a remote_user@remote_host_or_ip:/opt/media/ /opt/media/

Si SSH sur l'hôte distant écoute sur un port autre que le port par défaut 22 , spécifiez le port à l'aide de -e choix :

rsync -a -e "ssh -p 2322" /opt/media/ remote_user@remote_host_or_ip:/opt/media/

Lors du transfert de grandes quantités de données, il est recommandé d'exécuter le rsync commande à l'intérieur d'une session d'écran ou pour utiliser le -P choix :

rsync -a -P remote_user@remote_host_or_ip:/opt/media/ /opt/media/

Exclure les fichiers et répertoires #

Il existe deux options pour exclure des fichiers et des répertoires. La première option consiste à utiliser le --exclude argument et spécifiez les fichiers et répertoires que vous souhaitez exclure sur la ligne de commande.

Lorsque vous excluez des fichiers ou des répertoires, vous devez utiliser leurs chemins relatifs vers l'emplacement source.

Dans l'exemple suivant montre comment exclure les node_modules et tmp répertoires :

rsync -a --exclude=node_modules --exclude=tmp /src_directory/ /dst_directory/

La deuxième option consiste à utiliser le --exclude-from option et spécifiez les fichiers et répertoires que vous souhaitez exclure dans un fichier.

rsync -a --exclude-from='/exclude-file.txt' /src_directory/ /dst_directory/
/exclude-file.txt
node_modules
tmp

Conclusion #

Nous vous avons montré comment utiliser Rsync pour copier et synchroniser des fichiers et des répertoires. Il y a beaucoup plus à apprendre sur Rsync sur la page du manuel de l'utilisateur de Rsync.

N'hésitez pas à laisser un commentaire si vous avez des questions.


Linux
  1. Commande Linux wc avec exemples

  2. Commande Linux Tee avec exemples

  3. Commande principale Linux avec exemples

  4. Commande JQ sous Linux avec exemples

  5. Commande Linux rsync avec des exemples pratiques

15 Commande Linux ps avec exemples

Commande de CD Linux avec exemples

Commande Linux watch avec exemples

Commande Wait sous Linux avec des exemples

Commande d'exportation Linux avec exemples

Commande IP Linux avec exemples