falha ao executar backup incremental com TAR

1

Ambiente: Ubuntu 16.04 no Azure

Estou tentando fazer backup de pastas específicas. Eu estou usando um simples comando tar sem compactação. Meu objetivo é manter o arquivo por um mês, adicionando alterações incrementalmente uma vez por dia, depois compactar o tar e iniciar um novo uma vez por mês.

O meu problema é o seguinte: Backups locais não fazem sentido para mim, porque se o sistema de arquivos local morrer ou erros, tanto o original quanto o backup morrem. (parece óbvio, mas afirmo por clareza)

Eu tentei fazer o backup em um contêiner de armazenamento do Azure separado usando uma conexão SMB e também com outra máquina do Ubuntu idêntica ao NFS.

Eu tentei a segunda opção porque li este artigo: tar está fazendo backup de tudo, sempre que usado no diretório do Dropbox

Portanto, não importa o que eu faça, o tar parece ignorar o sinalizador -u ao emitir o seguinte comando:

cd /savelocation; sudo /bin/tar --ignore-failed-read -up -f /savelocation/backupfoldername.tar /var/www/foldertobackup

Em vez de adicionar alguns megas extras, o que representaria os arquivos adicionados ou alterados, estou recebendo um arquivo de 44 GB que tem o dobro do tamanho do original.

Quaisquer pensamentos ou perguntas são mais apreciados.

    
por Bruce 05.06.2017 / 21:59

2 respostas

0

De acordo com meus testes aqui.


Primeiro: acredito que o cd não é necessário para executar o comando.

Segundo: você deve usar --listed-incremental no seu comando.

-g, --listed-incremental FILE

handle new GNU-format incremental backup


Parece que --listed-incremental só funciona quando você já tem um arquivo TAR, de acordo com meus testes e com uma das observações listadas nos comentários.

pasta com arquivos vazios

$ ll folder
total 8,0K
-rw-rw-r-- 1 ivanleon ivanleon 9 Jun  6 11:32 file1
-rw-rw-r-- 1 ivanleon ivanleon 9 Jun  6 11:32 file2
-rw-rw-r-- 1 ivanleon ivanleon 0 Jun  6 11:27 file3

criando arquivo ARCHIVE de fita

$ sudo /bin/tar -cvf folder.tar folder
folder/
folder/file2
folder/file3
folder/file1

listando arquivo ARCHIVE de fita

$ tar tvf folder.tar 
drwxrwxr-x ivanleon/ivanleon 0 2017-06-06 11:27 folder/
-rw-rw-r-- ivanleon/ivanleon 0 2017-06-06 11:27 folder/file2
-rw-rw-r-- ivanleon/ivanleon 0 2017-06-06 11:27 folder/file3
-rw-rw-r-- ivanleon/ivanleon 0 2017-06-06 11:27 folder/file1

adicionando / modificando dados em alguns arquivos da pasta

$ echo "newdata1" >> folder/file1
$ echo "newdata2" >> folder/file2

gerando novo arquivo de fita ARCHIVE (fazendo backup incremental)

$ sudo /bin/tar -cvf --listed-incremental folder.tar folder
folder.tar
folder/
folder/file2
folder/file3
folder/file1

listando arquivo ARCHIVE de fita (arquivos foram substituídos)

$ tar -tvf folder.tar 
drwxrwxr-x ivanleon/ivanleon 0 2017-06-06 11:27 folder/
-rw-rw-r-- ivanleon/ivanleon 0 2017-06-06 11:27 folder/file2
-rw-rw-r-- ivanleon/ivanleon 0 2017-06-06 11:27 folder/file3
-rw-rw-r-- ivanleon/ivanleon 0 2017-06-06 11:27 folder/file1
    
por 05.06.2017 / 23:07
0

Eu fiz mais pesquisas sobre --listed-incremental. A maioria dos artigos era confusa, na melhor das hipóteses, sem detalhes suficientes para entender completamente. Eu então encontrei o seguinte artigo que explicava muito claramente:

link

A única coisa que eu adicionaria, sobre a qual eu perguntei ao autor, é que se você está testando em um alvo pequeno, pode parecer que você não está obtendo um incremento decente se você fizer isso imediatamente, como existe uma sobrecarga significativa no incremental. No entanto, depois de implementá-lo em backups maiores, ele é executado perfeitamente.

Em vez de fazer backup em minha conta de armazenamento do Azure separada, conectada via SMB, fiz um segundo servidor idêntico e o conectei via nfs. É muito mais estável e não há diferenças no sistema de arquivos que possam atrapalhar as coisas. Estou configurando um script que compactará cada backup e copiá-lo para o contêiner de armazenamento do Azure após a conclusão de cada backup. Isso economiza tempo de processamento e energia no servidor de produção, executando o zip no servidor de backup. Espero que isso ajude alguém.

    
por 09.06.2017 / 16:49