Como você obtém o rsync para carregar uma lista de regras de filtro (regras completas, não limitadas como --include-from) de um arquivo?

0

rsync tem várias opções para ler várias configurações de arquivos, para que você não precise encadear várias opções --include ou --exclude . Todas essas opções (até onde eu posso ler) de um arquivo no seu computador local : --exclude-from=FILE --include-from=FILE --files-from=FILE

O documento para --files-from=FILE esclarece que você pode usá-lo com um FILE local ou remoto:

In addition, the --files-from file can be read from the remote host instead of the local host if you specify a "host:" in front of the file (the host must match one end of the transfer). As a short-cut, you can specify just a prefix of ":" to mean "use the remote end of the transfer".

O que eu estou querendo saber é onde ou qual é o equivalente para --filter ? Temos --include e --include-from ; --exclude e --exclude-from . Mas onde está --filter-from ? (Ou qual é o equivalente mais próximo disso?)

A seção sobre INCLUIR / EXCLUIR REGRAS DE PADRÃO dá exemplos de como usar uma lista de regras padrão como se fossem incluídas em um arquivo ...

          + /some/
          + /some/path/
          + /some/path/this-file-is-found
          + /file-also-included
          - *

mas a única menção que consegui encontrar usando-os em um arquivo é com um arquivo carregado de merge ou dir-merge :

          merge, . specifies a merge-file to read for more rules.
          dir-merge, : specifies a per-directory merge-file.

Não encontrei menção se isso se refere a um arquivo de mesclagem nos hosts locais ou remotos, mas pelo que tentei até agora, parece funcionar apenas com um arquivo no remoto host.

    
por Tyler Rick 01.04.2016 / 23:51

1 resposta

1

Essa é exatamente a opção:

rsync --filter "merge /some/filterlist.conf"

(observe como -F é um alias para --filter "dir-merge /.rsync-filter" .)

merge arquivos são lidos do sistema local (cliente) (a menos que você passe explicitamente a opção para o servidor usando -M ). Se a fonte for remota, todas as regras de filtragem serão enviadas automaticamente para ela.

Entretanto, dir-merge é sempre aplicado à origem , seja local ou não. (Página do manual: "Esses arquivos de regras por diretório devem ser criados no lado de envio porque é o lado de envio que está sendo verificado para os arquivos disponíveis para transferência.")

    
por 02.04.2016 / 10:03

Tags