Recherche de site Web

Comment transférer des fichiers entre deux ordinateurs à l'aide des commandes nc et pv


Bonjour chers lecteurs Linux, je vous propose encore un autre excellent article de notre série de trucs et astuces Linux. Cette fois, nous utiliserons deux utilitaires Linux moins connus que vous devriez connaître.

Cet article explique comment transférer des fichiers entre deux ordinateurs Linux à l'aide de nc (utilitaire de mise en réseau) et pv (pipe viewer.), avant d'aller plus loin, laissez-moi vous expliquer quelles sont ces deux commandes.

nc signifie Netcat et est souvent désigné comme un « couteau suisse » comme un outil réseau utilisé pour le débogage et l'investigation du réseau. Il est également utilisé pour créer des connexions réseau à l'aide de TCP ou UDP, analyser les ports, transférer des fichiers et bien plus encore. Il est créé pour être un back-end fiable et spécialement utilisé dans les programmes et les scripts, car il peut générer presque n'importe quel type de connexion réseau et possède un certain nombre de fonctionnalités intégrées.

pv en bref Pipe Viewer est un outil basé sur un terminal pour surveiller la progression des données envoyées via un pipeline. Il permet à un utilisateur de voir la progression des données avec une barre de progression, affiche le temps écoulé, le pourcentage terminé et le débit actuel. taux, le total des données transférées et le temps estimé pour terminer le processus.

Comment surveiller la progression des données à l'aide de la commande pv (Pipe Viewer)

Allons maintenant plus loin et voyons comment nous pouvons combiner les deux commandes pour transférer des fichiers entre deux ordinateurs Linux. Pour les besoins de cet article, nous utiliserons deux machines Linux comme suit :

Machine A with IP : 192.168.0.4
Machine B with IP : 192.168.0.7

Remarque : Je vous conseille fortement de ne pas utiliser netcat pour envoyer et recevoir des données sur le réseau public, car il n'utilise aucune connexion ni authentification. , la seule exigence est l'adresse IP du client et le numéro de port d'écoute et l'envoi de données sur le réseau n'est pas sécurisé, il est donc toujours réservé aux utilisateurs Linux avancés et préféré pour une utilisation sur un réseau local protégé.

Dans les situations où la sécurité des données est plus importante, utilisez toujours rsync sur SSH ou scp sur SSH.

Commençons maintenant par un exemple très simple de commandes nc et pv, mais avant de faire cela, les deux utilitaires doivent être installés sur le système, sinon installez-les à l'aide de votre gestionnaire de packages de distribution respectif. outil comme suggéré:

yum install netcat pv        [On RedHat based systems]
dnf install netcat pv        [On Fedora 22+ versions]
apt-get install netcat pv    [On Debian and its derivatives]

Comment transférer des fichiers entre deux machines Linux ?

Supposons que vous souhaitiez envoyer un fichier volumineux appelé CentOS-7-x86_64-DVD-1503.iso de l'ordinateur A vers B via le réseau. , le moyen le plus rapide d'y parvenir en utilisant nc un utilitaire réseau utilisé pour envoyer des fichiers sur le réseau TCP, pv pour surveiller la progression des données et tar utilitaire pour compresser les données afin d’améliorer la vitesse de transfert.

Sur la machine Linux A

Connectez-vous d’abord à la machine « A » avec l’adresse IP 192.168.0.4 et exécutez la commande suivante.

tar -zcf - CentOS-7-x86_64-DVD-1503.iso | pv | nc -l -p 5555 -q 5

Laissez-moi vous expliquer les options utilisées dans la commande ci-dessus :

  1. tar -zcf=tar est un utilitaire d'archive sur bande utilisé pour compresser/décompresser les fichiers d'archive et les arguments -c crée un nouveau fichier d'archive .tar, -f spécifiez le type du fichier d'archive et -z filtrez l'archive via gzip.
  2. CentOS-7-x86_64-DVD-1503.iso=Spécifiez le nom du fichier à envoyer sur le réseau, il peut s'agir d'un fichier ou d'un chemin d'accès à un répertoire.
  3. pv=Pipe Viewer pour surveiller la progression des données.
  4. nc -l -p 5555 -q 5=Outil réseau utilisé pour envoyer et recevoir des données via TCP et arguments -l utilisés pour écouter une connexion entrante, - p 555 spécifie le port source à utiliser et -q 5 attend le nombre de secondes puis quitte.

Sur la machine Linux B

Connectez-vous maintenant à la machine « B » avec l’adresse IP 192.168.0.7 et exécutez la commande suivante.

nc 192.168.1.4 5555 | pv | tar -zxf -

Voilà, le fichier est transféré sur l'ordinateur B et vous pourrez voir à quelle vitesse l'opération s'est déroulée. Il existe des tonnes d'autres utilisations intéressantes des commandes nc (pas encore abordées, mais nous en parlerons bientôt) et pv (nous avons déjà couvert un article détaillé à ce sujet ici). , si vous connaissez un exemple, n'hésitez pas à nous le faire savoir via les commentaires !