Rsync para migrar muito grande nfs share

2

Eu queria receber informações sobre como dividir uma tarefa rsync em várias partes para fazer com que a acumulação de logs de mudança fosse mais rápida. A situação é que estamos migrando de uma plataforma de armazenamento para uma nova plataforma de armazenamento. Temos um diretório grande e plano com arquivos de 2,5 mm dentro dele. o log de alterações do rsync atualmente leva dias para ser concluído. Eu gostaria de obter vários arquivos txt divididos em talvez 100k arquivos por arquivo txt e, em seguida, executar várias tarefas de rsync contra esses arquivos de texto, possivelmente de servidores diferentes.

Meu shell script game é bem fraco, alguém sabe como realizar um 'ls' para arquivos de 100k e canalizar isso para um arquivo txt, depois voltar para o próximo conjunto de 100k, e assim por diante até que todos os arquivos nesse diretório são representados em um dos 25 arquivos txt.

Ou se alguém tiver uma ideia melhor do que o rsync, eu adoraria ouvi-lo.

    
por 200mg 15.03.2018 / 02:01

1 resposta

3

Para gerar os 25 arquivos que você está procurando ...

$ find /lots/of/files | split -d -l 100000

Isso geraria arquivos com 100.000 linhas cada. Há muito mais coisas que você pode fazer com split , então confira a manpage. Com -d eles serão nomeados numericamente em vez de alfabeticamente como em x01 , x02 , ... x25

A partir daqui você pode percorrer os arquivos e executar o rsync.

for file in x*
do
   # Run rsync command using $file as the change list
done

HTH

    
por 16.03.2018 / 17:45

Tags