A maneira mais rápida de duplicar arquivos de uma unidade flash USB para vários outros?

0

Estou trabalhando em um script bash para copiar arquivos de uma única unidade USB para vários outros.

Atualmente, estou usando o rsync que copia da origem para um único destino, passando por todas as unidades de saída em um loop, uma por vez:

for line in $(cat output_drives_list); do
            rsync -ah --progress --delete mountpoints/SOURCE/ mountpoints/$line/
        done

Estou tentando otimizar o processo para aproveitar ao máximo a largura de banda USB, evitando o gargalo de uma velocidade de gravação de uma única unidade.

É possível fazer algo como rsync, mas com vários diretórios de saída, que gravarão em todas as unidades de saída de uma só vez, mas serão lidos apenas uma vez a partir da entrada?

Eu acho que parte disso já foi resolvida pelo cache do sistema, mas isso só otimiza a leitura.

Se eu executo vários processos de rsync em paralelo, isso pode otimizar a velocidade de gravação, mas também tenho medo de prejudicar a velocidade de leitura.

Preciso me preocupar com leitura única ao copiar em paralelo?

    
por unfa 09.03.2017 / 13:17

2 respostas

1

Eu não posso testá-lo, mas se você iniciar mais processos em segundo plano, talvez seja a solução:

START=$(date +%s)
for line in $(cat output_drives_list); do
    rsync -ah --progress --delete mountpoints/SOURCE/ mountpoints/$line/ &
done
jobs # get a list of running jobs
wait # wait for all processes to complete
sync
echo It took: $(( $(date +%s)-START )) seconds

Editar: Adicionado date -stuff após o "benchmarking" ser mencionado.

    
por 09.03.2017 / 14:05
1

A velocidade de leitura será seu maior gargalo para a gravação de destino.

Dependendo de quão grande é o disco de origem, que tal criar um disco de RAM na copiadora, armazená-lo em cache e depois copiá-lo para vários destinos usando processos simultâneos como @hschou demonstra acima?

Como criar disco RAM "real" que reserva memória

A leitura de RAM sempre será mais rápida do que vários acessos aleatórios a um Flash ou SSD, mesmo que algum disco RAM acabe sendo trocado para o disco físico local.

    
por 09.03.2017 / 14:24