Filtros RSYNC Conflitos

1

Eu tive que dividir minhas tarefas de rsync em tarefas menores, considerando o tamanho dos meus diretórios. Essencialmente, estou fazendo isso em ordem alfabética (ou seja, script que sincroniza pastas começando com A-D, E-H, etc, etc.).

O problema que estou tendo é este ..... meu arquivo A-D filter.txt funciona bem, mas todos os outros falham. Eu acredito que o problema é porque o caminho que estou sincronizando é:

/AUser/db/Backups/***
/AUser2/db/Backups/***
/CUser/db/Backups/***
/EUser/db/Backups/***

Meu arquivo filter.txt para A-D é assim:

- E*
- e*
- F*
- f* (etc all the way through Z)
+ */db/
+ */db/Backups/***
- *

O acima funciona sem problemas. No entanto, este não faz:

- A*
- a*
- B*
- b* 
- C*
- c*
- D*
- d*
- I*
- i*
- J* (etc all the way through Z)
+ */db/
+ */db/Backups/***
- *

Eu estou supondo que minha exclusão de d ou B está causando isso (exclui a pasta db ou a pasta Backups ??), mas não consigo entender porque eu tenho uma inclusão para * / db / e * / db / Backups / ***

Obrigado !!

    
por Jason 25.02.2013 / 01:47

1 resposta

3

Os filtros rsync funcionam na primeira correspondência encontrada - então, sim, suas exclusões de "d *" e "B *" estão excluindo seus subdiretórios "db" e "Backups" antes de suas correspondências de inclusão.

Seria melhor incluir apenas os caminhos específicos que você deseja incluir e excluir todo o restante, por exemplo:

+ /[E-H]*            # include top-level dirs starting with E through to H
+ */db/              # include "db" subdirectories
+ */db/Backups/      # include "db/Backups" subdirectories
- */                 # exclude all other directories
    
por 25.02.2013 / 04:11

Tags