Por red con netcat


 

 

Si tenemos ordenadores idénticos con tarjetas de red, este método es muy cómodo.

 

Netcat es parecido a cat*, pero por red, es decir, abre un puerto tcp/udp y realiza una transferencia bit a bit de un archivo. Como en Linux tenemos la suerte de que todos los dispositivos son tratados como archivos...pues ya tenemos otra poderosa herramienta para clonar equipos.

 

Ejemplo 1.

Clonamos un disco duro completo "al vuelo" por red

 

 

 

 

 

CLIENTE (donde queremos copiar)

 

nc -l 8000 | dd of=/dev/sda

 

 

SERVIDOR (máquina donde están los datos)

 

dd if=/dev/sda | nc 192.168.1.2 8000

 

 

PASO 1- Ponemos la máquina cliente en modo de escucha (con la opción -l de netcat).

    Después usamos dd para enviar los datos a través de netcat.

     En el ejemplo, todo lo que se reciba por el puerto 8000 será escrito en el disco duro sda (pero se puede usar otro puerto, por ejemplo el 1234).

      En algunas versiones de netcat se usa -p 8000 para establecer el puerto en destino, esto es: nc -l -p 8000 | dd of=/dev/sda  y el servidor sin cambios.

 

 

PASO 2- Leemos con dd el disco duro del servidor y lo redirigimos todo al puerto 8000.                                          

     Si quisiéramos copiar a la vez en más de un ordenador sólo tendríamos que añadir & (para pasar el comando a segundo plano) al final de la línea del servidor e introducir lo mismo pero con la IP de otro equipo.

 

 

TRUCO 1.

 Mostrando la velocidad de volcado

 

Podemos ver la velocidad y la cantidad de datos volcados usando mbuffer.

 

dd if=/dev/sda | mbuffer | nc 192.168.0.2:8000

 

 

Por supuesto, podemos usar mbuffer con cualquier otra herramienta de volcado en red, solo hay que entubarla.

 

TRUCO 2.

 Ganando velocidad Netcat + Partclone

 

Podemos combinar netcat con partclone para acelerar las copias de particiones al vuelo sin crear imágenes ni archivos intermedios.

 

Ordenador que espera la copia

nc -l -p 8000 | partclone.ext4 -C -r -o /dev/sda1

 

Ordenador que proporciona los datos

sudo partclone.ext4 -c -s /dev/sda1 | nc 192.168.1.2 8000

 

Si queremos volcar también el mbr primario, haríamos lo siguiente:

nc -l -p 8000 | dd of=/dev/sda (ordenador que escucha y espera la copia)

dd if=/dev/sda bs=512 count=1 | nc 192.168.1.2 8000 (ordenador que tiene los datos)