Quiero archivos scp desde machineA
mi machineB
y así es como lo estoy haciendo. Estoy copiando un montón de archivos uno por uno de primary
la carpeta de machineA
a primary
la carpeta de machineB
y secondary
de la carpeta machineA
a secondary
la carpeta de machineB
.
trinity@machineB:~$ scp trinity@machineA:/data01/primary/* /data01/primary/
trinity@machineB:~$ scp trinity@machineA:/data02/secondary/* /data02/secondary/
¿Hay alguna manera de poder copiar varios archivos en paralelo? ¿Como cinco archivos a la vez desde una carpeta? Entonces, en lugar de copiar un archivo a la vez, ¿quiero copiar cinco archivos de las carpetas principal o secundaria respectivamente?
Básicamente, quiero copiar todo lo que hay en las carpetas primaria y secundaria machineA
en machineB
paralelo.
También tengo GNU Parallel instalado en mi caja si puedo usarlo. Intenté el siguiente comando pero no funciona. Esperaba que copiara 5 archivos en paralelo a la vez hasta que todo se copie desde esa carpeta.
parallel -j 5 scp trinity@machineA:/data01/primary/* /data01/primary/
¿Hay algún problema con mi sintaxis paralela? ¿Cuál es la mejor manera de copiar cinco archivos en paralelo desde una carpeta remota hasta que se copie todo?
Respuesta1
¿Por qué crees que la conexión paralela lo haría más rápido? SCP es una herramienta muy simple para transferir algunos archivos pequeños, nada que ver con el rendimiento y el rendimiento. Ejecutarlo desde procesos más paralelos podría hacerlo un poco más rápido, pero no significativamente. Lo que puedes hacer del otro modo es:
- Úselo
sftp
para obtener un mejor rendimiento y una copia más inteligente (debería ser suficiente), por ejemplo usando-r
- Úselo
ControlMaster
para deshacerse de la sobrecarga de las conexiones TCP paralelas - Utilice los parámetros correctos para
parallel
Yo comenzaría con el sftp
:
sftp -r trinity@machineA:/data01/primary/ /data01/primary/
Respuesta2
Necesita que la expansión * se realice en el lado remoto:
ssh machineA 'parallel -j 5 scp {} machineB:/data01/primary/ ::: /data01/primary/*'