Comment utiliser RSYNC pour copier des fichiers

Comment utiliser RSYNC pour copier des fichiers

RSYNC est un outil de ligne de commande dans Linux qui est utilisé pour copier les fichiers d'un emplacement source à un emplacement de destination. Vous pouvez copier des fichiers, répertoires et système de fichiers entiers et garder en synchronisation les fichiers entre différents répertoires. Il fait plus que simplement copier les fichiers. Il réduit la quantité de données envoyées sur le réseau en envoyant uniquement les fichiers qui sont nouveaux ou mis à jour. C'est pourquoi est-ce considéré comme un excellent utilitaire pour la copie des fichiers et la sauvegarde. RSYNC prend également en charge la copie des fichiers sur un système distant via SSH.

Dans cet article, nous expliquerons comment utiliser RSYNC pour copier des fichiers avec quelques exemples pratiques. Nous expliquerons également l'utilisation de RSYNC dans la copie d'un seul fichier, de plusieurs fichiers et du répertoire aux systèmes locaux et distants. Nous couvrirons comment utiliser RSYNC pour:

  • Copier le fichier / répertoire dans le système local
  • Copier le fichier / le répertoire du système local vers le système distant
  • Copier le fichier / répertoire du système distant vers local

Nous avons expliqué les commandes et la procédure mentionnées dans cet article sur un Ubuntu 20.04 LTS. Vous aurez besoin du terminal de ligne de commande pour copier des fichiers à l'aide de RSYNC. Pour ouvrir l'application de terminal de ligne de commande, utilisez le raccourci clavier Ctrl + Alt + T.

Installation de RSYNC

RSync est préinstallé dans Ubuntu 20.04 LTS. Cependant, s'il est accidentellement supprimé du système, vous pouvez l'installer comme suit:

$ sudo apt install rsync

Voici quelques-unes des options couramment utilisées qui peuvent être utilisées avec RSYNC:

-R: Mode des archives
-V: montre les détails du processus de copie
-P: montre la barre de progression
-R: Copie les données récursivement
-Z: comprime les données
-Q: supprimer la sortie

Copier les fichiers et les répertoires localement

La syntaxe générale de RSYNC est:

$ rSync [Option] [Source] [Destination]

Copiez un seul fichier localement

Si vous souhaitez copier un fichier d'un emplacement à un autre dans votre système, vous pouvez le faire en tapant rsync suivi du nom du fichier source et du répertoire de destination.

Par exemple, pour copier un seul fichier «Fichier1.txt »De l'emplacement actuel qui est le répertoire d'origine à ~ / Documents Directory, la commande serait:

$ RSync / Home / Tin / File1.TXT / HOME / TIN / DOCUMENTS

Remarque: au lieu de «/ home / tin / file1.txt ", nous pouvons également taper" file1 "car nous travaillons actuellement dans le répertoire domestique. De plus, nous pouvons utiliser ~ / documents au lieu de mentionner le chemin complet comme «/ home / tin / documents».

Copiez plusieurs fichiers localement

Si vous souhaitez copier plusieurs fichiers à la fois d'un emplacement à un autre dans votre système, vous pouvez le faire en tapant rsync suivi du nom des fichiers source et du répertoire de destination.

Par exemple, pour copier les fichiers «Fichier2.txt "et" file3.txt »Du répertoire d'origine à ~ / Documents Directory, la commande serait:

$ RSync / Home / Tin / File2.txt / home / tin / file3.TXT / HOME / TIN / DOCUMENTS

Pour copier tous les fichiers avec la même extension, vous pouvez utiliser le symbole astérisque (*) au lieu de spécifier individuellement les noms de fichiers. Par exemple, pour copier tous les fichiers du répertoire domestique se terminant par «.Extension zip »au répertoire ~ / documents, nous utiliserons:

$ RSYNC / HOME / TIN / *.zip ~ / documents

Copier les répertoires localement

Si vous souhaitez copier un répertoire avec son sous-répertoire et tous les contenus d'un emplacement à un autre dans votre système, vous pouvez le faire comme en tapant rsync suivi par le répertoire source et de destination.

Par exemple, pour copier le répertoire «Exemple» dans le répertoire «Tester /» dans le répertoire domestique, la commande serait:

$ RSYNC -AV / HOME / TIN / Sample / Home / Tin / Test

Remarque: Spécification de «/» après le répertoire source ne copie que le contenu du répertoire. Si nous ne spécifions pas le «/» après le répertoire source, le répertoire source sera également copié dans le répertoire de destination.

Comme dans la sortie suivante, vous pouvez voir que notre répertoire source «échantillon» est également copié dans le répertoire de destination (car nous avons utilisé «échantillon» au lieu de «Sample /» comme répertoire source).

RSYNC prend en charge le transfert incrémentiel comme vous pouvez le voir dans la sortie ci-dessus qu'il transfère uniquement les fichiers qui sont nouveaux ou mis à jour.

Copier des fichiers en fonction de la taille maximale

Lors de la copie, nous pouvons également spécifier la taille maximale des fichiers qui peuvent être copiés avec l'option «-max-size». Par exemple, pour copier les fichiers pas supérieurs à 2000k du répertoire ~ / téléchargements vers ~ / documents, la commande serait:

$ RSync -a --max-size = 2000k / home / tin / downloads / * / home / tin / documents

Cette commande copiera tous les fichiers de ~ / téléchargements vers le répertoire ~ / documents sauf ceux de plus de 2000k.

Copier des fichiers en fonction de la taille minimale

De même, nous pouvons également spécifier la taille minimale des fichiers qui peuvent être copiés avec l'option «-min-taille». Par exemple, pour copier les fichiers pas moins que 5m de ~ / téléchargements vers le répertoire ~ / documents, la commande serait:

$ RSYNC -A - min-size = 5m / home / tin / downloads / / home / tin / documents

Cette commande copiera tous les fichiers de ~ / téléchargements dans le répertoire ~ / documents sauf ceux inférieurs à 5m.

Exclure les fichiers

Lors de la copie de fichiers d'un répertoire à un autre, vous pouvez exclure certains fichiers à l'aide de l'option «-exclure» suivie du nom de fichier ou de l'extension du type de fichier.

Par exemple, pour exclure tout le .Fichiers zip lors de la copie de fichiers à partir de ~ / téléchargements vers le répertoire ~ / documents, la commande serait:

$ RSync -a --exclude = "*.zip "/ home / tin / downloads / / home / tin / documents

Copier les fichiers et les répertoires à distance

Avec RSYNC, vous pouvez copier un seul fichier, plusieurs fichiers et répertoires dans un système distant. Pour copier des fichiers et des répertoires à distance, vous aurez besoin:

  • RSYNC installé sur le système local et distant
  • Accès SSH au système distant
  • Mot de passe utilisateur distant

Avant de copier des fichiers à l'aide de RSYNC, assurez-vous que vous pouvez accéder au système distant via SSH:

$ SSH Remote_user @ Remote_ip


La syntaxe générale pour la copie des fichiers et des répertoires dans un système distant à l'aide de RSYNC:

$ Sync [Option] [Source] [RemoteUser @ RemoteIP: Destination]

Par exemple, pour copier un seul fichier «Fichier.txt ”de ~ / téléchargements vers le répertoire du système distant ~ / documents, la commande serait:

$ RSYNC -V ~ / Téléchargements / fichier1.txt umara @ 192.168.72.164: ~ / documents

De même, pour copier le répertoire «~ / téléchargements / fichiers» dans un système local avec son sous-répertoire et tous les contenus dans le répertoire «~ / téléchargements / échantillons» au système distant:

$ RSYNC -RV ~ / Téléchargements / fichiers umara @ 192.168.72.164: ~ / téléchargements / échantillons

Vous pouvez également copier les fichiers et répertoires de la machine distante vers votre machine locale. Par exemple, pour copier un «fichier2.txt »du système distant au bureau du système local:

$ RSync -v Umara @ 192.168.72.164: ~ / téléchargements / fichier2.txt ~ / Desktop /

De même, pour copier un répertoire du système distant au système local

$ RSYNC -RV UMARA @ 192.168.72.164: ~ / Téléchargements / Exemple ~ / Desktop / Test

Vous pouvez également utiliser toutes les options comme -Max-Size, -Min-Size, -exclude et autres tout en copie des fichiers vers / depuis le système distant.

RSYNC est un excellent outil pour copier des fichiers de la source à la destination soit localement ou à distance. Il comprend un large ensemble d'options qui vous donne la flexibilité et le contrôle lors du transfert de fichiers vers / depuis le système distant.