A lista de exclusões do tar não funciona mais depois de atualizar para o trecho do Debian

5

Eu escrevi um script de backup há muito tempo, que usa esta parte do manual do alcatrão :

You may give multiple '--exclude' options.

--exclude-from=file

-X file

Causes tar to ignore files that match the patterns listed in file.

Meu comando tar é o seguinte:

includesFile=include.txt
excludesFile=exclude.txt
tar zcpf - . -T ${includesFile} -X ${excludesFile} | openssl des3 -salt | dd of=out.bak

Isso é include.txt :

/etc/
/var/
/usr/
/data/
/opt/
/root

Isso é exclude.txt

/data/webapp/webapp-data/*
/var/cache/*
/var/lib/dpkg/*
/usr/bin/*
/usr/share/locale/*

Funcionava muito bem. Recentemente notei que o tamanho do arquivo aumentou significativamente, e mudando para tar detalhado, me fez ver que ele incluía o diretório webapp-data , que é enorme. Por alguma razão, não está mais sendo excluído.

A última coisa que fiz foi a atualização do Debian Jessie para Debian Stretch . A mudança de versão é menor, eu me pergunto se é a razão.

Eu tentei alterar /data/webapp/webapp-data/* para /data/webapp/webapp-data/** , mas isso não ajudou.

Por que a lista de exclusão não funciona mais?

    
por The Quantum Physicist 13.08.2017 / 19:12

2 respostas

1

Eu (finalmente) descobri o problema e consegui resolvê-lo. É uma combinação de várias coisas, incluindo que excludes é dado como um curinga (enquanto antes de fazer a pergunta eu não fiz isso ... agora isso não funciona mais). Este é o comando que funciona:

includesFile=include.txt
excludesFile=exclude.txt
tar -zcpf - --absolute-names -X ${excludesFile} -T ${includesFile} | openssl des3 -salt | dd of=out.bak

E definitivamente, as exclusões são dadas desta forma:

/var/cache/*
/var/lib/dpkg/*
/usr/bin/*
/usr/share/locale/*
/proc/*
/sys/*

E inclui:

/etc/
/var/
/usr/
    
por 23.09.2017 / 14:57
2

Eu tive o mesmo problema com exclusões de tar depois de atualizar do Debian Jessie para o Stretch e corrigi-lo apenas alterando a ordem dos parâmetros da linha de comando

de: tar cvzpf backup.tar.gz /DirToBackup1 /DirToBackup2 --exclude-from=/path/to/backup_exclude.txt
para: tar cvzpf backup.tar.gz --exclude-from=/path/to/backup_exclude.txt /DirToBackup1 /DirToBackup2

meu backup_exclude.txt parece com isso %código%

(referindo-se ao final da página de link )


Espero que ajude
Atenciosamente
Erik

    
por 30.08.2017 / 14:26