Meu objetivo é criar um backup tar.gz incremental para uma pasta chamada /data
.
Para fazer isso, quero recuperar a lista de arquivos que foram modificados após o último backup. Este momento é armazenado em um arquivo chamado lastran.txt
.
Eu uso o seguinte comando para obter esta lista:
find /data -newer lastran.txt -not -type d -print 0
Eu canalizo os resultados deste comando para um xargs -0 tar
comando.
Meu problema é que os resultados do find
comando contêm um conjunto de arquivos que estão em uma ou mais pastas que não quero adicionar ao arquivo morto.
Eu tentei o --except-from
parâmetro de tar
com um arquivo que chamei folder-exclusion.lst
que contém uma lista de pastas como:
/data/backups
/data/cloud
/data/system
Mas isso não parece estar funcionando.
tar
, mas parece que seu arquivo de exclusão deve ser uma lista de padrões , de modo que cada linha deve ter/*
no final, por exemplo/data/backups/*
, etc.Respostas:
Várias opções, escolha uma:
Verifique
rdiff-backup
, você pode estar reinventando a roda.Diga
find
para excluir alguns padrões em primeiro lugar. Use-wholename
assim:Pegue seu original
find
e filtre sua saída:Corrija seu
folder-exclusion.lst
. Minha experiência comtar
é limitada e não consigo encontrar nada sobre a--except-from
opção. Se você tem certeza de que é a opção certa, o comentário da AFH pode estar correto:fonte