gtar falha ao executar backup incremental

1

O script a seguir falha ao executar o backup incremental, mas cria um backup completo.

Em outro servidor FreeBSD exatamente o mesmo script funciona muito bem (criando backups incrementais).

Servidores são idênticos, o mesmo FreeBSD 10.0-RELEASE em ambas as máquinas. Script exatamente o mesmo. A versão do gtar é idêntica. O sistema de arquivos é idêntico.

Não tenho certeza do que está acontecendo. Pesquisei por dias! Por favor ajude.

#!/bin/sh

sourcedir="/home"
targetdir="/backup/home"

now=$(date +"%Y%m%d%H%M")

cd $sourcedir
for dir in */
do
  base=$(basename "$dir")
  gtar -cz -g "$targetdir/.gtar-incremental" -f "$targetdir/${base}-$now.tar.gz" "/home/$dir"
  chmod 600 "$targetdir/${base}-$now.tar.gz"
done
    
por Alex G 10.08.2014 / 07:23

1 resposta

0

Passamos por isso hoje e acho que há dois problemas aqui:

  1. 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, um gtar-incremental não pode atender a todos os arquivos mortos.
  2. gtar não gosta de registros de data e hora. Isso ocorre porque o arquivo de instantâneo armazena o nome do arquivo tar.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.

    
por 10.08.2014 / 08:09