O rsync pode ser usado para retomar a transferência depois de outros métodos de transferência / download?

2

Então, basicamente eu posso usar o rsync para retomar a transferência do (s) arquivo (s) / diretório que foi iniciado inicialmente por outro programa (wget, curl, scp, ftp, ...)?

    
por sepehr 30.07.2017 / 17:46

1 resposta

2

Sim. Mas, para um melhor desempenho, você deve prestar atenção às opções que você usa.

Ao baixar arquivos, tome cuidado para preservar os tempos de modificação de arquivos. Os utilitários de sincronização de arquivos normalmente pressupõem que, se o arquivo de origem e o arquivo de destino tiverem o mesmo tamanho e a mesma hora de modificação, eles terão o mesmo conteúdo. Isso acelera a sincronização de vários arquivos de forma significativa. Se os tempos de modificação forem diferentes, o rsync terá que ler o conteúdo de ambos os lados para decidir se transfere o arquivo.

  • Com wget , use -N ( --timestamping ).
  • Com curl , use -R ( --remote-time ).
  • Com cp , scp , use -p (ou -a para GNU cp ).
  • Com rsync , use -t ou -a . (Você deve sempre usar rsync -a a menos que você entenda porque não é desejável em um caso particular.)
  • Os programas de FTP geralmente copiam o registro de data e hora.
  • Você pode dizer ao rsync para assumir que o arquivo de origem e o arquivo de destino são idênticos se tiverem o mesmo tamanho, passando a opção --size-only . Isso é ok se a única maneira de o arquivo ser modificado é aumentá-lo adicionando dados no final. Nesse caso, você provavelmente também deve passar a opção --append . Mas se o arquivo puder ser modificado de outras maneiras, então --size-only não é seguro: você pode perder modificações se elas não alterarem o tamanho do arquivo.

Se você usar rsync -a simples, então:

  • Arquivos que não existem no destino são simplesmente copiados.
  • Arquivos que existem no destino, mas possuem um registro de data e hora diferente ou um tamanho diferente são copiados. O Rsync tentará minimizar a quantidade de dados transferidos por meio de seu algoritmo de transferência delta, que salva as transferências se os arquivos tiverem partes idênticas.
  • Arquivos que existem no destino e têm o mesmo timestamp e tamanho são ignorados.

Se você tiver certeza de que os arquivos nos dois lados são cópias idênticas ou truncadas, poderá passar a opção --append . Com essa opção, o rsync supõe que qualquer arquivo no destino é uma cópia parcial ou completa e anexará diretamente os dados ausentes a arquivos menores, sem verificar se o início do arquivo é o mesmo em ambos os lados. Isso é mais rápido, mas mais frágil.

    
por 31.07.2017 / 01:56

Tags