GNU/Linux >> Tutoriels Linux >  >> Debian

Comment utiliser la commande rsync pour copier des données localement et via SSH

Copier des fichiers d'un emplacement à un autre est une tâche assez basique et peut être facilement réalisée en utilisant la commande cp. Cependant, parfois, il faut en faire un peu plus. C'est là que la commande rsync vient, en particulier lorsque vous transférez des fichiers plus volumineux. Rsync (Remote Sync) est un outil de ligne de commande basé sur Linux qui peut être utilisé pour synchroniser et copier des fichiers entre des serveurs locaux et distants. Il permet la synchronisation de fichiers entre deux répertoires sur le même ordinateur, entre les répertoires de deux ordinateurs différents sur le même réseau, entre deux répertoires sur le système distant.

Le principal avantage de rsync est qu'au lieu de copier aveuglément tout le contenu, il analyse et transfère uniquement les différences entre la source et la destination, ce qui permet d'économiser les ressources système et la bande passante. Voici quelques autres avantages de rsync :

  • Compresse les fichiers avant le transfert
  • Peut afficher la barre de progression lors du transfert de données
  • Le processus de copie peut être interrompu et repris plus tard
  • Permet le transfert via une connexion SSH

Dans cet article, nous expliquerons comment utiliser rsync pour copier des données sous Linux. Nous utiliserons Debian 10 pour décrire la procédure mentionnée dans cet article.

Installation de Rsync

Rsync est installé par défaut sur la plupart des systèmes d'exploitation Linux. Cependant, s'il n'est pas installé, vous pouvez l'installer en suivant les étapes ci-dessous :

Lancez l'application Terminal dans votre système en allant dans les Activités dans le coin supérieur gauche de votre bureau Debian. Puis dans la barre de recherche, tapez terminal . Lorsque l'icône du terminal apparaît, cliquez dessus pour le lancer.

Exécutez maintenant la commande ci-dessous dans Terminal pour installer l'utilitaire rsync :

$ apt install rsync

Utiliser Rsync

Chaque commande rsync commence par rsync suivi d'une option dans laquelle vous pouvez spécifier divers paramètres. Rsync fournit un certain nombre d'options qui vous donnent le contrôle pour façonner les spécifications de transfert. Ensuite, il y a une source et une destination qui dépendent s'il s'agit d'une machine distante ou locale.

La syntaxe de base de rsync est :

$ rsync [option] [source] [destination]

Certaines des options générales utilisées avec les commandes rsync :

  1. -v :verbeux
  2. -a  :mode archive, il permet de copier des fichiers de manière récursive et préserve les liens symboliques, les autorisations de fichiers, les propriétés des utilisateurs et des groupes et les horodatages
  3. -z :compresse les données
  4. -h  :lisible par l'homme, il produit des nombres dans un format lisible par l'homme
  5. –max-size= SIZE, transférer des fichiers avec la SIZE minimale spécifiée
  6. –min-size= SIZE, transférer des fichiers avec la SIZE maximale spécifiée

Nous allons maintenant expliquer quelques exemples d'utilisation de rsync avec ces options.

Copier les fichiers et les répertoires sur le serveur local

Copier les fichiers localement

Vous pouvez copier un ou plusieurs fichiers d'un répertoire source vers le répertoire de destination sur la même machine. L'exemple serait de copier tous les .jpg fichiers de ~/Téléchargements répertoire vers le ~/Documents répertoire à l'aide de la commande suivante :

$ rsync -zvh /home/tin/Downloads/*.jpg /home/tin/Documents

Après avoir exécuté la commande ci-dessus, tous les fichiers .jpg fichiers dans le répertoire source /home/tin/Downloads sera copié dans le répertoire de destination /home/tin/Documents .

Dans l'exemple ci-dessus, nous avons utilisé les options comme -z pour la compression, -v pour une sortie détaillée et -h pour une sortie lisible par l'homme.

Copier les répertoires localement

Semblable aux fichiers, vous pouvez également copier l'intégralité du dossier et les fichiers contenus dans un répertoire à l'aide de la commande rsync. Un exemple serait de copier tous les fichiers de ~/Downloads répertoire vers le ~/Documents répertoire à l'aide de la commande suivante :

$ rsync -zavh /home/tin/Downloads/ /home/tin/Documents

Copier des fichiers sur un serveur distant

Vous pouvez copier un ou plusieurs fichiers d'un répertoire source vers un répertoire de destination sur une machine distante. Par exemple, pour copier les fichiers d'une machine locale vers une machine distante, utilisez la syntaxe de commande suivante :

$ rsync [options] [local path] [user]@[remote server]:[remote path]

Copier des fichiers en fonction de la taille maximale

Vous pouvez également spécifier la taille maximale du fichier pouvant être copié de la source à la destination à l'aide de rsync. Pour ce faire, utilisez la syntaxe de commande suivante :

$ rsync --max-size=”” [source] [destination]

Un exemple serait de copier des fichiers d'une taille maximale de 4000K à partir de la source ~/Downloads à destination ~/Documents annuaire. Dans ce cas, les fichiers d'une taille supérieure à 4 000 ko ne seront pas copiés vers la destination.

$ rsync --max-size=4000k /home/tin/Downloads/*.iso /home/tin/Documents/

Copier des fichiers en fonction de la taille minimale

De même, vous pouvez également spécifier la taille minimale pouvant être copiée de la source à la destination à l'aide de rsync. Pour ce faire, utilisez la syntaxe de commande suivante :

$ rsync --min-size=”” [source] [destination]

Un exemple de ceci serait de copier des fichiers d'une taille maximale de 2 Mo à partir de la source ~/Downloads à destination ~/Documents annuaire. Les fichiers dont la taille est inférieure à 2 Mo ne seront pas copiés à l'aide de rsync.

$ rsync --min-size=2M /home/tin/Downloads/*.iso /home/tin/Documents/

Afficher la progression

Vous pouvez également afficher la progression lors de la copie de fichiers à l'aide de rsync. Ajouter –progrès flag suivant la commande rsync comme indiqué ci-dessous :

$ rsync --progress [source] [destination]

Un exemple serait de voir la progression lors de la copie d'un fichier à partir de la source ~/Downloads à destination ~/Documents répertoire :

$ rsync --progress /home/tin/Downloads/VTS_03_1.VOB /home/tin/Documents

Exclure des fichiers

Vous pouvez également exclure certains fichiers lors de la copie des fichiers de la source vers la destination à l'aide de rsync. Un exemple serait d'exclure tous les fichiers .pdf lors de la copie de fichiers à partir de la source ~/Downloads à destination ~/Documents répertoire.

rsync -zavh --exclude="*.pdf" /home/tin/Downloads/ /home/tin/Documents

En entrant la commande suivante, tous les fichiers seront copiés de la source à la destination sauf .pdf fichiers.

C'est tout ce qu'il y a à faire ! Nous avons expliqué l'utilisation de base de l'utilitaire rsync pour copier des fichiers entre différents répertoires localement et à distance. Nous avons également expliqué quelques options rync courantes et utiles. Il y a tellement d'options autres que celles-ci que vous pouvez utiliser pour contrôler chaque aspect du comportement de transfert. Pour utiliser ces options, consultez les pages de manuel de rsync.


Debian
  1. Comment télécharger et charger des fichiers via SSH

  2. La commande Linux rsync :comment l'utiliser

  3. Comment utiliser la commande Rsync sous Linux ?

  4. Comment copier des fichiers sous Linux et Unix ? 10 exemples de commandes cp

  5. Utiliser un appareil via SSH ?

Comment sauvegarder des fichiers et des dossiers dans Debian 10

Comment installer et utiliser Okteta pour les fichiers de données RAW sous Linux

Comment utiliser Docker Cp pour copier des fichiers entre l'hôte et les conteneurs

Comment utiliser Rsync et SSH dans un pipeline Dockerized GitLab CI

Comment installer et utiliser MongoDB sur Debian 11

Comment utiliser Rsync pour copier/synchroniser des fichiers entre des serveurs