rsync para o arquivo compactado do arquivo

11

Eu faço backups de um servidor com rsync, mas esses backups são bem grandes e eu gostaria de compactá-los. Existe uma maneira de ter algum tipo de wrapper em torno de rsync para gunzip o arquivo no backup, rsync as alterações do arquivo ao vivo, em seguida, re-gzip o arquivo assim que é copiado?

Ou seja. se os arquivos de origem no live são foo , bar e baz , o backup tem foo.gz , < em> bar.gz e baz.gz .

Para repor: quero arquivos compactados em uma extremidade e arquivos descompactados na outra extremidade. Eu não quero comprimir antes de rsyncing, porque mesmo com --rsyncable, ele torna o rsync menos eficiente. Eu sei sobre a opção -z para o rsync. Eu não tenho espaço na máquina de backup para armazenar todos os arquivos descompactados.

    
por rjmunro 11.08.2009 / 15:28

4 respostas

6

Eu acho que rsyncing para um sistema de arquivos montados no FuseCompress pode ser a melhor opção. O histórico do projeto especificamente os menciona fazendo melhorias no desempenho do rsync com ele.

link

link

    
por 11.08.2009 / 16:45
10

Não sei se entendi o que você está tentando fazer, mas é possível criar backups com gzip no servidor principal, certificando-se de que eles sejam prontamente rsyncable e não se incomodem em descompactar nada em trânsito.

gzip(1)

--rsyncable
       While compressing, synchronize the output occasionally based on
       the  input.   This  increases  size by less than 1 percent most
       cases, but means that the rsync(1) program can much more  effi‐
       ciently  synchronize  files  compressed with this flag.  gunzip
       cannot tell the difference between a  compressed  file  created
       with this option, and one created without it.
    
por 11.08.2009 / 16:03
-1

Você pode escrever um wrapper no rsync. Se você extrair dados, não há nada especial para fazer. Se você quiser "empurrar" os dados das máquinas originais para o servidor de backup, é mais delicado fazer com que funcione:

Primeiro, você precisa ter certeza de que o wrapper é invocado com o mesmo nome, caminho e parâmetros que o rsync original, pelo menos para o usuário sob o qual você executa os backups.

Em segundo lugar, certifique-se de não escrever nada para stdout, porque isso iria mangle o canal de comunicação.

Em terceiro lugar, passe todos os parâmetros que você recebe, apenas modificando conforme apropriado para o destino recém-descompactado.

    
por 11.08.2009 / 17:47
-2

Ele provavelmente está procurando por compressão de transmissão de dados via rsync, e não por compactação de arquivos na outra extremidade.

Confira: link

Parâmetros de compactação da página man:

   -z, --compress              compress file data during the transfer

        --compress-level=NUM    explicitly set compression level

Por padrão, o ssh faz sua própria compactação até certo ponto. Eu não sei o quanto melhor o rsync está acima do ssh nativo. Se a maioria dos seus arquivos já estiverem compactados em arquivos gzip, provavelmente não haverá muito que o mecanismo de compressão do rsync possa fazer por você. Você só pode espremer muito um arquivo.

    
por 11.08.2009 / 16:21