Como listar arquivos que foram modificados após uma determinada data e que não estão em uma lista de pastas


0

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 tarcomando.

Meu problema é que os resultados do findcomando 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-fromparâmetro de tarcom um arquivo que chamei folder-exclusion.lstque contém uma lista de pastas como:

/data/backups
/data/cloud
/data/system

Mas isso não parece estar funcionando.


Eu não usei esta opção no 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.
AFH

Respostas:


0

Várias opções, escolha uma:

  1. Verifique rdiff-backup, você pode estar reinventando a roda.

  2. Diga findpara excluir alguns padrões em primeiro lugar. Use -wholenameassim:

    find /data -newer lastran.txt -not -type d -not -wholename "/data/backups/*" -not -wholename "/data/cloud/*" -not -wholename "/data/system/*" -print 0
  3. Pegue seu original finde filtre sua saída:

    find /data -newer lastran.txt -not -type d -print 0 | grep -Ezv "^/data/backups/|^/data/cloud/|^/data/system/"
  4. Corrija seu folder-exclusion.lst. Minha experiência com taré limitada e não consigo encontrar nada sobre a --except-fromopção. Se você tem certeza de que é a opção certa, o comentário da AFH pode estar correto:

    parece que seu arquivo de exclusão deve ser uma lista de padrões , de modo que cada linha tenha /*no final, por exemplo /data/backups/*, etc.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.