Passamos por isso hoje e acho que há dois problemas aqui:
- a cada iteração do ciclo
for
, um novo arquivo incremental é criado (ou o antigo é sobrescrito :-) . Lembre-se, existe um mapeamento 1: 1 entre o arquivo archive e o arquivo de instantâneo, portanto, umgtar-incremental
não pode atender a todos os arquivos mortos. -
gtar
não gosta de registros de data e hora. Isso ocorre porque o arquivo de instantâneo armazena o nome do arquivotar.gz
e, se a cadeia passada por$now
for diferente da antiga, ela criará um novo arquivo compactado e um novo instantâneo arquivo.
A maneira como eu verifiquei e trabalho incremental, foi mudando a linha gtar
:
gtar --listed-incremental=$targetdir/gtar-incremental-$base -cvzf $targetdir/$base.tar.gz $dir
Isso funciona em incremental.
O código acima criará o arquivo incremental
para cada diretório que está sendo submetido a backup.
Outra maneira de fazer isso funcionar com vários arquivos incremental
é fazer backup de todo o diretório home
como um todo, em vez de arquivamentos individuais (ou seja, sem o loop for
, apenas em linha reta /home
para /backup/home.tar.gz
).
Por último, eu estava pensando se os carimbos de data / hora são importantes para você, você pode adicionar data e hora após o gtar
ser feito nos arquivos e também remover a data e hora dos arquivos (se existir antes de n > , pode ser construído com if
declaração)
Os horários são cruciais para sua operação?
Espero que isso ajude.