melhor ferramenta linux para transferir milhares de arquivos entre dois servidores [fechados]

0

Se você acha que é uma duplicata ... bem eu não encontrei uma resposta satisfatória ainda: /

Eu tenho que migrar uma pasta de um servidor para outro. Pessoalmente, eu usaria o rsync, mas a pergunta é ... essa pasta contém arquivos grandes (& gt; 5gb) e muitos arquivos pequenos (arquivos com mais de 1k & lt; 30kb).

Eu gostaria de evitar o gargalo causado pela transferência de muitos arquivos pequenos.

O rsync é a ferramenta certa para fazer isso ou existem soluções melhores?

SCP é ainda mais lento, apenas no caso de alguém sugerir isso.

Wyatt Gillette
fonte
Você está procurando uma resposta baseada em opinião, que você não obterá neste site. Experimentar Recomendações de Software em vez disso, mas você precisa ser claro sobre o que você entende por melhor : mais rápida, mais segura, menor sobrecarga, mais fácil de usar ou outros critérios? Para mim, se os servidores estão geograficamente próximos, eu usaria um disco externo para uma transferência tão grande.
AFH
obrigado pelo comentário. Eu não estou pedindo uma resposta baseada em opinião, devo especificar que estou procurando a solução mais rápida. Infelizmente, movimentos físicos não podem ser usados ​​devido a muitos fatores (principalmente burocráticos). Eu costumava clonar a máquina diretamente, mas neste caso seria um desperdício de tempo e espaço.
Wyatt Gillette
@WyattGillette Você ainda está procurando por uma recomendação de software, e aqui no Superusuário, perguntas que parecem recomendações de software (que você confirmou duas vezes) não estão dentro do escopo.
Ramhound
Você está pedindo uma recomendação de produto ( ferramenta linux ) e claramente baseada na opinião ( melhor ferramenta linux), que é claramente indicado como sendo off-topic no Centro de ajuda diretrizes.
Ken White

Respostas:

1

Se esta for uma transferência única, o rsync NÃO é a ferramenta para o trabalho.

A maneira que eu faria seria tar os arquivos (e, opcionalmente, compactar, dependendo das características dos servidores e da conexão entre eles), então canalizar isso via SSH para o novo servidor e descompactá-lo. Isso pode ser feito em 1 comando. Você precisará variar dependendo dos detalhes, mas pareceria algo como:

tar -cz /startdir | pv | ssh user@ip "cd /destpath; tar -xf" 

Isso compactará os arquivos em um único fluxo, de modo que não haja muitas alternações para cada arquivo, proporcionando a máxima velocidade. Ele também faz a compactação, o envio e a descompactação em uma única etapa, minimizando assim o tempo total gasto.

Para detalhar como isso funciona:

tar comprime / descomprime os arquivos em um fluxo no stdout (porque um nome de arquivo não é dado). the -c significa criar, e z significa compactar. Você pode omitir o z se a compressão não for desejada.

O bit pv não é necessário, mas fornece feedback de que os dados estão sendo transferidos e a taxa de transferência dos dados compactados. O comando ssh do curso cria a conexão com o lado remoto e alimenta a saída dos comandos anteriores para ele. Em seguida, ele salta para o diretório apropriado e o descompacta.

davidgo
fonte
Eu gosto disso! Isso não espera até que o comando tar seja concluído, mas o transmite continuamente para o host remoto. Isso esta certo?
paradoxon
1
Sim. Está certo.
davidgo
isso é excelente e é exatamente o que eu precisava, obrigado!
Wyatt Gillette
-1

Usar find ... -size para tar os arquivos sob um determinado tamanho em um único grande, então use rsync .... --min-size para transferir apenas arquivos acima de um determinado tamanho.

xenoid
fonte