Questão rsync um arquivo já compactado


rysnc -z terá alguma vantagem de compressão se o arquivo de entrada já estiver gzipado? Eu tenho um grande arquivo compactado de 100GB para enviar através da rede em servidores e ele falhou consistentemente (cano quebrado) após vários períodos de tempo. Imaginando se eu deveria tentar a bandeira -z.


4


origem


Eu suspeito que você estava procurando o --partial opção, que permite a retomada da transferência, independentemente do que deu errado. - FauxFaux


Respostas:


Compactar em trânsito um arquivo já compactado geralmente não vale o tempo da CPU. Existem ressalvas. No processo de comparar dois arquivos, o uso do rsync com compactação pode acelerar a comparação de hashes dos dados.

Se você quiser apenas sincronizar versões compactadas de arquivos grandes em mais de um sistema, um lugar para procurar seria certas compilações de gzip. Em um sistema Ubuntu, recebo:

$ gzip -h
Uso: gzip [OPTION] ... [FILE] ...
Compactar ou descompactar arquivos (por padrão, compactar arquivos no local).

Argumentos obrigatórios para opções longas são obrigatórios para opções curtas também.

  -c, --stdout escreve na saída padrão, mantém os arquivos originais inalterados
  -d, --decompress descompactar
  -f, --force sobrescreve o arquivo de saída e comprime os links
  -h, --help dá essa ajuda
  -l, - lista lista conteúdo do arquivo compactado
  -L, - licença de software de exibição de licença
  -n, --no-name não salva ou restaura o nome original e o registro de data e hora
  -N, --name salva ou restaura o nome original e o registro de data e hora
  -q, --quiet suprime todos os avisos
  -r, --recursivo opera recursivamente em diretórios
  -S, --suffix = SUF usar sufixo SUF em arquivos compactados
  -t, - teste de integridade de arquivo compactado de teste
  -v, --verbose modo detalhado
  -V, --version número da versão do monitor
  -1, --compressa rápida mais rápido
  -9, --melhor comprima melhor
    --rsyncable Faça um arquivo compatível com rsync

Sem FILE, ou quando FILE é -, leia a entrada padrão.

Relatar erros para.

Notar que --rsyncable opção? Evita usar a compactação adaptável para que apenas pequenas partes do arquivo compactado sejam alteradas quando houver apenas uma pequena alteração no arquivo de origem. O restante dos dados binários não é alterado, de modo que o rsync não precisará retransmitir a coisa toda. A página man indica que essa opção não deve aumentar o tamanho do arquivo compactado em mais de 1% em comparação a sem usar a opção, e esse gunzip não saberá a diferença.

Eu tenho um arquivo sql 468MB que eu comprimi para 57MB com o --rsyncable opção. Eu transfiro este arquivo para o meu sistema local. Em seguida, adiciono um comentário de uma linha ao arquivo sql original no sistema remoto e recompacta com a opção rsyncable.

$ rsync -avvz --progress -h fooboo: foo.sql.gz.
abertura de conexão usando ssh fooboo rsync --server --sender -vvlogDtprz. foo.sql.gz
recebendo lista de arquivos ...
1 arquivo a considerar
transmissão delta habilitada
foo.sql.gz
      59,64M 100% 43,22MB / s 0:00:01 (xfer # 1, to-check = 0/1)
total: correspondências = 7723 hash_hits = 9468 false_alarms = 0 dados = 22366

enviado 54,12K bytes recebidos 22,58K bytes 17,05K bytes / seg
o tamanho total é de 59.64M de aceleração é de 777,59

Não é ruim. O Rsync só precisou transferir uma pequena quantidade do arquivo compactado mais recente.


8



Seria bom comparar o que a transferência usaria sem o --rsyncable opção. - Kevin Cox


O rsync não fará com que um arquivo já compactado seja significativamente menor durante o trânsito.

É improvável que suas transferências com falha sejam corrigidas, adicionando o sinalizador -z. Eu sugiro tentar rsync o arquivo (s) descompactado. O rsync será então comprimido na hora. Você então tem a vantagem de que, caso o arquivo de origem mude e você precise rsync novamente, somente os bytes alterados serão transferidos. Se você alterar um arquivo compactado, o rsync provavelmente terá que retransmiti-lo em sua totalidade. Veja aqui para mais detalhes:

http://beeznest.wordpress.com/2005/02/03/rsyncable-gzip/


2





Usando rsync -z não terá qualquer vantagem sobre apenas rsync ao lidar com um arquivo que já foi compactado usando um bom formato de compactação. No entanto, você pode considerar dividir seu arquivo compactado em partes menores, para poder transmiti-lo usando o rsync.

Aqui está um guia para o linux: http://www.techiecorner.com/107/how-to-split-large-file-into-several-smaller-files-linux/ E para o Windows: http://www.online-tech-tips.com/pt/computer-tips/how-to-split-a-large-file-into-multiple-smaller-pieces/


2