Como retomo uma cópia de um arquivo grande no linux? Eu tenho um arquivo enorme (gigabyes de servidor) parcialmente copiado para uma unidade de rede e demorou muito tempo, e isso foi feito principalmente antes da operação de cópia parar devido a um problema de rede que foi corrigido. Como faço para retomar a cópia do arquivo. Não quero um script ineficiente e o ecp não funcionou (não parece funcionar para arquivos grandes).
9
Se você sabe que simplesmente precisa anexar ao arquivo local e não deseja usar o rsync (que pode levar muito tempo calculando as somas de verificação), você pode usar curl. Por exemplo, se você tiver um arquivo grande em um pendrive removível lento
/media/CORSAIR/somefile.dat
e montado em apenas metade dele no diretório atual, continue:curl -C - -O "file:///media/CORSAIR/somefile.dat"
fonte
Sim, o rsync é o caminho a percorrer. Para mim, transferimos dados de mais de 100 GB sobre o rsync + ssh. Se você estiver procurando por uma cópia de backup verdadeira, use a
-a
opção (archive) para preservar os atributos do arquivo (horas, proprietários, permissões, etc.)Também é útil para copiar arquivos grandes que podem mudar durante o curso de uma migração. Você pode pré-carregar os dados no destino e, uma vez pronto para a cópia final, faça-o novamente, mas apenas por uma fração do tempo. Você pode economizar tempo de inatividade real usando o rsync em todo o seu potencial.
PS O uso
v
(detalhado) pode retardar a transferência de muitos arquivos.fonte
O comando que você deseja será algo como
a menos que você possa acessar o servidor pelo ssh e executar o rsync dessa maneira, nesse caso, o comando que o FlyingFish deu é o melhor.
fonte
O rsync só é bom se você tiver o rsync no servidor de destino. Nesse caso, é realmente a melhor solução.
Mas não de outra forma. Como o ponto do rsync é apenas copiar partes alteradas em arquivos grandes, ele assume que essas partes alteradas podem estar em qualquer lugar do arquivo. Isso significa que irá somar todos os blocos que já foram copiados. Se você não possui o rsync na extremidade remota, o rsync local começará lendo novamente tudo o que já foi transferido.
Se a sua máquina de origem tiver um servidor Web ou FTP, você poderá usar o wget no servidor de destino com a opção "--continue". (ou enrole com a opção "--continuar no [- | tamanho]").
Se a sua máquina de destino tiver um servidor FTP, você poderá usar a curvatura na máquina de origem com a opção --append.
Como último recurso, você pode usar dd com os argumentos "bs =" (tamanho do bloco), "skip =" e "seek =". Por exemplo:
Vamos supor que você poderá usar blocos de 2048 bytes. Se o seu arquivo de destino tiver atualmente 2'048'000'000 bytes (2 GB), ou seja, 1'000'000 blocos de 2048 bytes. Para anexar o restante do seu arquivo de origem ao destino, você pode
dd if = arquivo de origem de = arquivo de destino bs = 2048 pular = 1000000 procurar = 1000000
Você pode usar um tamanho de bloco maior para melhorar a velocidade de transferência. Lembre-se de especificar o tamanho do bloco com bs = e que o valor dado para pular e procurar está em blocos, não em bytes.
fonte