Infelizmente, a pior coisa que você pode fazer é usar rsync
no NFS. (Ou para qualquer sistema de arquivos remoto instalado no sistema local.) Isso desativa quase todos os aprimoramentos de eficiência para os quais rsync
é conhecido.
Para esse tanto de dados, uma das maneiras mais rápidas de transferi-lo entre os sistemas pode ser despejá-lo através de uma conexão sem criptografia sem considerar o que já estava no sistema de destino.
Depois de ter pelo menos uma cópia parcial, a melhor opção é usar rsync
entre os dois hosts. Isso permite que rsync
execute um processo em cada host para considerar e comparar as diferenças. (O rsync
ignorará completamente os arquivos que possuem o mesmo tamanho e data de modificação. Para outros arquivos, os componentes cliente e servidor realizarão uma soma de verificação contínua para determinar quais blocos ainda precisam ser transferidos.)
-
Despejo rápido. Este exemplo não usa autenticação ou criptografia. Entretanto, aplica-se a compactação, que você pode remover omitindo os dois
-z
flags:Execute isso na máquina de destino para iniciar um servidor de escuta:
cd /path/to/destination && nc -l 50505 | pax -zrv -pe
Execute isso na máquina de origem para iniciar o cliente de envio:
cd /path/to/source && pax -wz . | nc destination_server 50505
Algumas versões de
nc -l
podem exigir que a porta seja especificada com um sinalizador, ou seja,nc -l -p 50505
. A versão do OpenBSD no Debian (nc.openbsd
, linkado por/etc/alternatives
to/bin/nc
) não. -
Transferência mais lenta. Este exemplo usa
rsync
overssh
, que fornece autenticação e criptografia. Não perca a barra final (/
) no caminho de origem. Omita o sinal-z
se não quiser a compressão:rsync -avzP /path/to/source/ destination_server:/path/to/destination
Você pode precisar configurar certificados SSH para permitir o login no destination_server como root. Adicione o -H
flag se você precisar manipular hard links.