Copiando uma estrutura de diretório profundamente aninhada

Copiando uma estrutura de diretório profundamente aninhada

Preciso copiar uma estrutura de diretórios para um novo host como parte de uma migração de aplicativo. A estrutura do diretório é a seguinte:

{10 - ff} / {00 - ff} / {00 - ff} (não incluído) / nome de arquivo exclusivo

Portanto, existem milhões de arquivos. O terceiro nível da árvore não está totalmente preenchido e nem todo diretório de terceiro nível contém um arquivo.

a du leva MUITO tempo para ser concluído, mesmo para uma pasta de segundo nível. Usando alcatrão | nc levaria 10 dias. Posso ter uma interrupção de 1 dia, mas não 10.

Responder1

Use rsyncpara isso.

  1. Antes de você precisar passar a usar o novo servidor, faça uma verificação rsyncde todo o diretório de um host para outro. Pelo que parece, isso levará muito tempo para ser concluído.
  2. Depois de concluído, execute rsyncnovamente para capturar todos os arquivos modificados durante o primeiro rsync.
  3. Continue fazendo execuções periódicas rsyncaté desejar realizar a transição. Isso serve apenas para manter baixo o volume de dados que precisam ser transferidos.
  4. Faça uma interrupção e interrompa todas as gravações no servidor antigo.
  5. Execute um últimorsync
  6. Inicie os serviços no novo servidor

Responder2

Se esta estrutura de diretórios for a maior parte dos dados em seu dispositivo/partição, ignore a estrutura de diretórios, se é isso que está causando o problema.

Em vez disso, desmonte o dispositivo (ou remonte somente leitura) e use-o dd(1)com o netcat para copiar os blocos do sistema de arquivos para uma partição do mesmo tamanho no novo host.

Se houver dados estranhos fora da hierarquia desejada, exclua-os após a migração.

Você também pode considerar retirar a unidade e conectá-la ao novo host se a rede entre os hosts puder ser um gargalo.

Responder3

Para uma cópia única, e se você puder ter a origem e o destino montados no mesmo sistema, você pode fazer

find [source top dir] | cpio -dump [target mountpoint]

Ele copiará e preservará os atributos do arquivo. Deve haver parâmetro de compressão na ferramenta cpio também.

informação relacionada