Eu tenho usado um rsyncscript para sincronizar dados em um host com os dados em outro host. Os dados possuem vários arquivos de tamanho pequeno que contribuem para quase 1,2 TB.
Para sincronizar esses arquivos, eu tenho usado o rsynccomando da seguinte maneira:
rsync -avzm --stats --human-readable --include-from proj.lst /data/projects REMOTEHOST:/data/
O conteúdo de proj.lst é o seguinte:
+ proj1
+ proj1/*
+ proj1/*/*
+ proj1/*/*/*.tar
+ proj1/*/*/*.pdf
+ proj2
+ proj2/*
+ proj2/*/*
+ proj2/*/*/*.tar
+ proj2/*/*/*.pdf
...
...
...
- *
Como teste, peguei dois desses projetos (8,5 GB de dados) e executei o comando acima. Por ser um processo seqüencial, utiliza 14 minutos e 58 segundos para concluir. Portanto, para 1,2 TB de dados, levaria várias horas.
Se eu pudesse vários rsyncprocessos em paralelo (usando &, xargsou parallel), ele iria salvar o meu tempo.
Eu tentei com o comando abaixo com parallel(após cding para o diretório de origem) e levou 12 minutos e 37 segundos para executar:
parallel --will-cite -j 5 rsync -avzm --stats --human-readable {} REMOTEHOST:/data/ ::: .
Isso deveria levar cinco vezes menos tempo, mas não levou. Eu acho que estou errado em algum lugar.
Como posso executar vários rsyncprocessos para reduzir o tempo de execução?
rsyncs é nossa primeira prioridade.
rsyncS múltiplos em paralelo é o foco principal agora.