Hoy tuve que reinstalar mi servidor Ubuntu que uso a menudo para probar diferentes aplicaciones. Mi servidor Ubuntu tiene más de 200 GB de datos y no quiero perderlos. Puedo transferir esos datos a través de scp, o configurar NFS, FTP para copiar archivos, pero estoy bastante seguro de que llevaría horas transferir archivos tan grandes. Mientras buscaba un método alternativo, encontré el siguiente método. Podemos transferir rápidamente archivos grandes entre dos sistemas a través de la red usando netcat , alquitrán , y pv comandos en cualquier sistema operativo GNU/Linux y tipo Unix. A diferencia de otros métodos, lo encuentro muy rápido y rápido. Para los que no lo saben, Netcat es una sencilla utilidad de Unix que lee y escribe datos a través de conexiones de red utilizando el protocolo TCP o UDP. alquitrán es una herramienta de archivo de línea de comandos y pv , significa visor de tuberías, se usa para monitorear el progreso de los datos. Ahora, permítame mostrarle cómo transferir archivos grandes rápidamente entre dos sistemas Linux. No es tan difícil como crees. Sigue leyendo.
Descargar - Libro electrónico gratuito:"6 herramientas útiles de línea de comandos de Linux para administradores de sistemas"Transfiera rápidamente archivos grandes a través de la red entre dos sistemas en GNU/Linux
Asegúrese de haber instalado las utilidades "netcat" y "pv" en sus sistemas. Si aún no están instalados, puede instalarlos como se muestra a continuación. El paquete "tar" está disponible de forma predeterminada en la mayoría de los sistemas Linux, por lo que no es necesario que lo instale.
Sobre Arch Linux y sus derivados:
$ sudo pacman -S netcat pv
En RHEL, CentOS, Fedora:
$ sudo yum install epel-release
$ sudo yum install nc pv
O,
$ sudo dnf install nc pv
En Debian, Ubuntu, Linux Mint:
$ sudo apt-get install netcat pv
Ahora veamos cómo copiar rápidamente archivos grandes entre dos sistemas.
Para hacerlo, ejecute el siguiente comando como root usuario en el nodo receptor (sistema de destino):
# netcat -l -p 7000 | pv | tar x
En el nodo de envío (sistema de origen), ejecute este comando como root usuario:
# tar cf - * | pv | netcat 192.168.1.105 7000
Aquí, 192.168.1.105 es mi sistema de destino. tar cf - * copiará todo en el directorio de trabajo actual al sistema de destino y los archivos se extraerán en el otro extremo.
Después de agregar el puerto en el sistema de destino, puede transferir los archivos más grandes como se muestra a continuación.
En el sistema de destino:
# nc -l -p 7000 | pv | tar x
En el sistema de origen:
# tar cf - * | pv | nc 192.168.1.105 7000
Además, puede especificar un archivo en particular como el siguiente.
# tar cf - /home/sk/test.file | pv | netcat 192.168.1.105 7000
Tenga en cuenta que ambos sistemas deben tener netcat instalado . Ahora, toma una taza de café. Verá que los archivos se copiarán más rápido que los métodos tradicionales como scp.
Además, no verá ninguna señal de finalización de la transferencia de archivos en ambos lados. Estos comandos seguirán ejecutándose hasta que los detenga manualmente. Debe verificar manualmente los tamaños de archivo en ambos sistemas usando "du -h
Transfiere rápidamente archivos grandes entre dos sistemas en Unix
En los sistemas operativos Unix, netcat se llama como nc. Entonces, para copiar archivos grandes entre sistemas a través de la red, el comando sería:
En el sistema de destino:
# nc -l 7000 | pv | tar -xpf -
En el sistema de origen:
# tar -cf - * | pv | nc 192.168.1.105 7000
Nuevamente, estos comandos deben ejecutarse como root usuario. Y, tanto el sistema de origen como el de destino deben tener netcat y pv instalados. La transferencia de archivos grandes a través de LAN usando netcat y tar puede ahorrarle mucho tiempo.
Descargo de responsabilidad: Tenga en cuenta que no hay seguridad en este método . Porque, como ves en los ejemplos anteriores, no hay autenticación en ninguno de los dos lados. Todo lo que necesita saber es la dirección IP del sistema de destino. Se recomienda transferir archivos usando netcat solo dentro de redes protegidas . Si está paranoico con la seguridad, le sugiero que use scp comando.
Si tu seguridad es tan importante para ti, puedes usar Rsync para transferir archivos de forma segura.
$ rsync -ravz /path/to/source/files/ destination-ip:/path/on/destiny
Gracias:Ppnman
Eso es todo. ¿Conoces alguna otra forma de copiar archivos grandes rápidamente? Compártalo en la sección de comentarios a continuación.