Estou usando o rsync para fazer backup de um repositório que contém muitos arquivos gz, incluindo muitos novos a cada dia. O backup do rsync prossegue mais lentamente do que deveria, porque esses arquivos gz não foram criados com a opção --rsyncable do gzip (que torna os arquivos gz muito mais "compatíveis com o rsync", sem aumentar significativamente o tamanho ou afetar a compatibilidade). E não consigo resolver o problema no momento da criação, porque os arquivos são gerados por um script python (rdiff-backup) que usa o módulo gzip do python e isso não suporta um equivalente ao --rsyncable do gzip.
Portanto, antes de executar o rsync, posso identificar quaisquer novos arquivos gz nos dados de origem (ou seja, novos desde a última vez que o rsync foi executado). Agora eu quero 're-compactar' esses arquivos para que sejam compactados no formato rsyncable. Então eu posso executar o rsync da fonte otimizada.
Eu acho que isso significa executar cada arquivo através do gunzip e depois do gzip --rsyncable, mas não sei muito bem como fazer isso de uma maneira que não corra o risco de perder dados ou metadados. Sugestões recebidas com gratidão.
--rsyncable
que importa é se os arquivos são alterados entre as execuções ersync
tenta enviar as alterações. Os novos arquivos não se importam se são sincronizáveis ou não, porque precisamrsync
enviar todos os dados de qualquer maneira. Os arquivos estão sendo alterados entre as execuções do rsync?--rsyncable
.-a
sinalizador. Além disso, minha versão do gzip não possui um--rsyncable
sinalizador, mas ele vem com um programa chamadoznew
que provavelmente poderia ser usado para o que você precisa.--rsyncable
não ajudaria. Eu esperava uma linha de código ou script curto que descompactasse com segurança um arquivo gz e o reembalasse usando--rsyncable
. Mas é apenas uma questão acadêmica para mim agora.Respostas:
fonte
gunzip | gzip
, você está perdendo o nome descompactado e tempo como armazenado no arquivo gz (e visto comgzip -vNl
)