Comando de cópia ideal do Linux para um grande número de arquivos

3

Este é um tópico no qual não consegui encontrar uma resposta definitiva, ou pelo menos uma com uma boa explicação sobre por que uma solução é melhor que a outra. Vamos dizer que eu tenho duas unidades locais, uma com arquivos para serem copiados, um vazio. O feedback não é necessário, mas o desempenho ideal é, com algumas ressalvas.

  1. A estrutura do arquivo de um ponto abaixo deve ser consistente. Por exemplo, os arquivos podem ser armazenados no diretório x , em que x está localizado em /my_drive_a/to_copy/files/x/ - no entanto, quando copio para /my_drive_b/ , gostaria que fosse estruturado somente de /files/ down. Então, o resultado pode parecer um pouco com /my_drive_b/files/x/ .
  2. Os arquivos transferidos não serão os mesmos a cada vez, portanto, uma função como rsync pode não ser vantajosa em relação a uma função como cp .
  3. A contagem de arquivos será na casa dos milhares, embora todos sejam pequenos.
  4. Os dados devem ser copiados e mantidos em my_drive_a .

Meu pensamento inicial seria simplesmente fazer cp -R /my_drive_a/to_copy/files/x/ /my_drive_b/files/x/ . Novamente, com experiência limitada em funções de cópia no Linux, não tenho certeza se essa é uma solução ideal para copiar um número tão grande de arquivos.

    
por sudosnake 15.02.2017 / 15:07

1 resposta

1

Basta ir com cp . coreutils são bem otimizados e terão excelente desempenho. Exceto no --archive flag, considere usar --sparse=never , se você previr que não há arquivos esparsos. Isso vai diminuir cp e economizar tempo.

Por que não rsync ? Ele tentará analisar os arquivos, classificá-los (consulte "ORDEM DE TRANSFERÊNCIA SORTIDA" em man rsync ), e é muito difícil imprimir informações úteis sobre o progresso sem prejudicar seriamente todo o processo. Embora algumas de suas opções possam ser desativadas, algumas são obrigatórias e resultarão em um tempo de execução mais lento.

Dependendo do tamanho dos seus dados, pode ser mais rápido copiar todo o disco (ex. /dev/sda ) com programas como dd ou ddrescue , mas é difícil dizer quando essa opção será mais rápida.

    
por 15.06.2017 / 23:59