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-incrementalnão pode atender a todos os arquivos mortos. -
gtarnão gosta de registros de data e hora. Isso ocorre porque o arquivo de instantâneo armazena o nome do arquivotar.gze, se a cadeia passada por$nowfor 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.