GNU/Linux >> Tutoriels Linux >  >> Linux

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

Bonjour chers lecteurs Linux, je vous apporte encore un autre excellent article de notre série Linux Tips and Tricks, 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 vp (visualiseur de canaux ), avant d'aller plus loin, laissez-moi vous expliquer quelles sont ces deux commandes.

nc signifie Netcat et souvent qualifié de "couteau suisse " est un outil de mise en réseau utilisé pour le débogage et l'investigation du réseau, ainsi que pour la création de connexions réseau à l'aide de TCP ou UDP, l'analyse de ports, le transfert de fichiers, etc. 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.

vp 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, indique le temps écoulé, le pourcentage terminé, le débit actuel, le total des données transférées et Estimation Il est temps de 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 déconseille fortement d'utiliser netcat pour envoyer et recevoir des données sur le réseau public, car il n'utilise aucune connexion ou authentification, la seule exigence est l'adresse IP du client et le numéro de port d'écoute et les données envoyées sur le réseau ne sont pas sécurisées, elles sont donc toujours réservées aux utilisateurs avancés de Linux et de préférence à utiliser 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 avec un exemple très simple de nc et vp commandes, mais avant cela, les deux utilitaires doivent être installés sur le système, sinon installez-les à l'aide de votre outil de gestion de packages de distribution respectif, 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 gros fichier appelé CentOS-7-x86_64-DVD-1503.iso depuis l'ordinateur A à B sur 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

Première connexion à 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'archivage 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 de fichier d'archive et -z filtrer 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 vers un répertoire.
  3. vp =Pipe Viewer pour surveiller la progression des données.
  4. nc -l -p 5555 -q 5 =Outil de mise en réseau utilisé pour envoyer et recevoir des données via tcp et arguments -l utilisé 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 -

Ça y est, 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 de nc (pas encore couvert, mais j'écrirai bientôt à ce sujet) et pv (nous avons déjà couvert un article détaillé à ce sujet ici) commandes, si vous connaissez un exemple, merci de nous le faire savoir via des commentaires !


Linux
  1. Transférer en toute sécurité des fichiers et des dossiers entre ordinateurs à l'aide de Croc

  2. Comment configurer le serveur SAMBA et transférer des fichiers entre Linux et Windows

  3. Comment copier en toute sécurité des fichiers entre des hôtes Linux à l'aide de SCP et SFTP

  4. Comment transférer des fichiers entre serveurs sous Linux à l'aide de SCP et FTP

  5. Meilleur moyen de transférer des fichiers sur un réseau local entre deux ordinateurs Linux

Comment sauvegarder et restaurer des données à l'aide de Retic sous Linux

Comment sauvegarder et restaurer des fichiers à l'aide de BorgBackup sous Linux

Comment sauvegarder des fichiers et des répertoires à l'aide de Rsync sous Linux

Comment transférer des fichiers entre Dropbox et Google Drive avec Rclone sous Linux

Comment connecter et partager des données entre deux systèmes Linux

Comment supprimer des fichiers et des répertoires à l'aide de la ligne de commande Linux