Búsqueda de sitios web

Cómo transferir archivos entre dos computadoras usando los comandos nc y pv


Hola compañeros lectores de Linux, les traigo otro excelente artículo de nuestra serie de consejos y trucos de Linux. Esta vez usaremos dos utilidades de Linux menos conocidas que deben conocer.

Este artículo explicará cómo se transfieren archivos entre dos computadoras Linux usando nc (utilidad de red) y pv (visor de tuberías). fuerte>), antes de continuar, déjame explicarte cuáles son estos dos comandos.

nc significa Netcat y a menudo se señala como “navaja suiza” es una herramienta de red utilizada para la depuración e investigación de redes y también se utiliza para crear conexiones de red usando TCP o UDP, escaneo de puertos, transferencia de archivos y más. Está creado para ser un back-end confiable y se utiliza especialmente en programas y scripts, ya que puede generar casi cualquier tipo de conexión de red y tiene una serie de funciones integradas.

pv en resumen Pipe Viewer es una herramienta basada en terminal para monitorear el progreso de los datos enviados a través de una tubería, permite al usuario ver el progreso de los datos con una barra de progreso, muestra el tiempo transcurrido, el porcentaje completado y el rendimiento actual. velocidad, datos totales transferidos y tiempo estimado para completar el proceso.

Cómo monitorear el progreso de los datos usando el comando pv (Pipe Viewer)

Vayamos ahora más allá y veamos cómo podemos combinar ambos comandos para transferir archivos entre dos computadoras Linux. Para los fines de este artículo usaremos dos máquinas Linux de la siguiente manera:

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

Nota: Le recomiendo encarecidamente no utilizar netcat para enviar y recibir datos a través de la red pública, ya que no utiliza ningún inicio de sesión ni autenticación. , el único requisito es la IP del cliente y el número de puerto de escucha y los datos enviados a través de la red no están seguros, por lo que siempre están reservados para usuarios avanzados de Linux y prefieren usarlos en una red local protegida.

En situaciones en las que la seguridad de los datos es más importante, utilice siempre rsync sobre SSH o scp sobre SSH.

Ahora comencemos con un ejemplo realmente sencillo de los comandos nc y pv, pero antes de hacerlo, ambas utilidades deben estar instaladas en el sistema; si no, instálelas usando su respectivo administrador de paquetes de distribución. herramienta como se sugiere:

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]

¿Cómo transferir archivos entre dos máquinas Linux?

Supongamos que desea enviar un archivo grande llamado CentOS-7-x86_64-DVD-1503.iso desde la computadora A a la B a través de la red. , la forma más rápida de lograr esto usando nc una utilidad de red utilizada para enviar archivos a través de la red TCP, pv para monitorear el progreso de los datos y tar Utilidad para comprimir datos para mejorar la velocidad de transferencia.

En la máquina Linux A

Primero inicie sesión en la máquina 'A' con la dirección IP 192.168.0.4 y ejecute el siguiente comando.

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

Déjame explicarte las opciones utilizadas en el comando anterior:

  1. tar -zcf=tar es una utilidad de archivo de cinta utilizada para comprimir/descomprimir archivos y argumentos -c crea un nuevo archivo .tar, -f especifica el tipo de archivo comprimido y -z filtra el archivo a través de gzip.
  2. CentOS-7-x86_64-DVD-1503.iso=Especifique el nombre del archivo para enviar a través de la red, puede ser un archivo o una ruta a un directorio.
  3. pv=Pipe Viewer para monitorear el progreso de los datos.
  4. nc -l -p 5555 -q 5=Herramienta de red utilizada para enviar y recibir datos a través de TCP y argumentos -l utilizados para escuchar una conexión entrante, - p 555 especifica el puerto de origen a usar y -q 5 espera la cantidad de segundos y luego sale.

En la máquina Linux B

Ahora inicie sesión en la máquina 'B' con la dirección IP 192.168.0.7 y ejecute el siguiente comando.

nc 192.168.1.4 5555 | pv | tar -zxf -

Eso es todo, el archivo se transfiere a la computadora B y podrás ver qué tan rápido se realizó la operación. Hay muchos más usos excelentes de los comandos nc (aún no cubiertos, pero escribiremos sobre ello pronto) y pv (ya cubrimos un artículo detallado sobre esto aquí) , si conoce algún ejemplo, ¡háganoslo saber a través de comentarios!