Copia arquivos em paralelo de servidores remotos usando algum comando no terminal?

2

Estou copiando arquivos do servidor remoto para o meu servidor local usando o comando scp abaixo. Acabei de digitar o comando abaixo no terminal e ele começa a copiar.

scp -r user@machineA:/data/process/* /data/process/

Agora, em servidores remotos, temos cerca de 100 arquivos e cada tamanho de arquivo é de cerca de 11 GB, portanto, o comando acima copiará um arquivo de cada vez. Existe alguma maneira pela qual eu possa copiar 5 arquivos de cada vez em paralelo com algum comando que eu possa executar diretamente no terminal?

Eu também tenho o GNU paralelo instalado, mas não tenho certeza de como posso usá-lo aqui, o que pode me ajudar a copiar arquivos em paralelo, executando diretamente no terminal? Ou, se houver outro jeito, também estou aberto para isso.

    
por david 15.12.2017 / 00:11

1 resposta

1

Aqui está o comando a ser executado no servidor remoto, envolvendo find e parallel :

find /data/process/ -type f | parallel scp {} user@machineB:/data/process/

Editar:

Consulte a documentação sobre como controlar o número de tarefas a serem executadas em paralelo.

The number of concurrent jobs is given with --jobs or the equivalent -j.
By default --jobs is the same as the number of CPU cores.
--jobs 0 will run as many jobs in parallel as possible.

Editar:

Isso deve ser outra pergunta, e já foi perguntado e respondido: como executar um comando em uma máquina remota?

ssh user@machineA 'find /data/process/ -type f | parallel scp {} user@machineB:/data/process/'
    
por 15.12.2017 / 07:38