Clicky

Copia o transfiere archivos de una PC a otra a la velocidad del rayo

A la hora de copiar grandes cantidades de archivos entre una PC y otra, podemos echar mano a diversas alternativas como lo son los discos externos, memorias usb, conexión vía red de área local, etc. Pero ¿que pasa cuando queremos transferir (por ejemplo) los archivos correspondientes a una maquina virtual, mismos que pueden llegar a mediar largos gigas?¿O quizás transferir gigantescas bases de datos de 10, 20 100 gigas o más?

Felizmente existe en Gnu/Linux y Unix un método, que a diferencia de otros, permite transferir archivos de gran tamaño a la velocidad del rayo. ¿Cómo se logra esto? Se logra por medio de una aplicación llamada Netcat que lee y escribe datos en conexiones de red empleando el protocolo TCP o UDP de manera más que eficiente.

¿Qué necesitamos?

Primeramente, Netcat. También Tar, la herramienta de compresión de Gnu /Linux y también una pequeña utilidad que nos permite visualizar la trasmisión de datos sobre la red. Se trata de PV (del inglés Pipe Viewer, algo así como visor de tuberías»). Finalmente, necesitamos saber de antemano la dirección IP local de la PC destino.

Las instalamos de la siguiente manera:

Debian y derivados:

sudo apt-get install netcat pv

Arch y derivados:

sudo pacman -S install netcat pv

RHEL y derivados:

sudo yum install epel-release
sudo yum install nc pv

Copia o transfiere archivos de una PC a otra a la velocidad del rayo

Ahora, que ya tenemos todo listo podemos comenzar podemos poner a punto el proceso. Ve a la computadora destino.

En la PC destino

Corre en la terminal:

hostanme -I

Esto te debe devolver como respuesta el número de tu dirección de IP local, que puede incluir únicamente la versión IPV4  (la que comienza con 192.168…. y que he resaltado en rojo abajo) y/o  los números, de IPV6 si tienes este protocolo habilitado en tu sistema. En todo caso, solo toma nota de la primera dirección.

192.168.1.40 45cc:ddff:cdf6:5g6h:ffd5:20fa:f6df:fghh

Ahora, dejamos la PC lista en espera de los archivos que le vamos a enviar por la red. Navega con la terminal o el gestor de archivos (y luego abre el terminal con la opción «abrir un terminal aquí») hasta la ubicación donde quieres que estos se copien (por defecto se copiaran en la carpeta personal) y corre:

netcat -l -p 7000 | pv | tar x

La PC queda lista y en modo de espera…

En la PC origen

Ahora, ve a la PC desde la que vas a enviar la información, navega con tu gestor de archivos hasta la carpeta que contiene los archivos que quieres copiar, y habiendo hecho clic derecho con el ratón, selecciona «abrir en un terminal». O simplemente abre una terminal y navega hasta aquella carpeta. Ahí vas a correr una orden en cuyos parámetros se incluye la dirección IPV4 que obtuviste en el paso previo:

sudo tar cf - * | pv | netcat 192.168.1.40 7000

O en su defecto, puedes establecer la ruta del file a copiar en el mismo comando:

sudo tar cf - /ruta/al/fichero | pv | netcat 192.168.1.40 7000
En RHEL, Centos y derivados, el paquete netcat recibe otro nombre. Por ello, en los dos comandos que han ser ejecutados en la PC de Origen, netcat tiene que reemplazarse por nc, que es el nombre del paquete en aquellas distribuciones Gnu/Linux. Adicionalmente, sólo queda recordar que esta guía solo debe de implementarse en el entorno de una red de área local, jamás para transferir datos a ubicaciones remotas fuera de ella.

Esto iniciará el proceso de copiado, verdaderamente rápido. Sabrás que el mismo ha concluido, cuadro veas que la cantidad de datos transferida en ambos ordenadores, es la misma luego de algunos segundos. El indicador no se moverá más.

Finalmente, puedes concluir el proceso de copia presionando la combinación de teclas: Control + C.

Créditos

Créditos: Esta guía fue publicada originalmente en el idioma Inglés en https://www.ostechnix.com/quickly-transfer-large-files-network-linux-unix/

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *