Atualizando tar.gz diariamente somente com arquivos alterados [duplicado]

3

Eu tenho alguns arquivos do jogo que desejo atualizar diariamente e eles criam um tar.gz da pasta, mas em vez de fazer um tar.gz cheio de todos os arquivos novamente todos os dias, estou tentando encontrar uma maneira de faça com que ele verifique o diretório para arquivos alterados / adicionados / excluídos e atualize o arquivo para economizar tempo e CPU em vez de recriar o arquivo do zero todos os dias. Como posso fazer isso?

Eu estava tentando usar --listed-incremented sem sorte até agora.

    
por William Balkcom 29.10.2011 / 17:55

1 resposta

9

Você deve criar um nível 0 de backup primeiro:

$ tar --create --verbose --listed-incremental ./game.snar --gzip \
    --file game_'date +%F'.tar.gz game/

e no dia seguinte, este comando comprime apenas os arquivos alterados desde a criação do ./game.snar :

$ tar --create --verbose --listed-incremental ./game.snar --gzip \
    --file game_'date +%F'.tar.gz game/

Este arquivo é chamado de backup de nível 1 .

Quando quiser restaurar, coloque todos os arquivos compactados em uma pasta e extraia cada um em ordem de criação usando a opção --incremental , algo assim:

$ for t in game_2011-10-2*.tar.gz; \
    do tar --verbose --extract --incremental --gzip --file $t; done
    
por 29.10.2011 / 18:59