rsync filter: não encontrando o arquivo de filtro

1

Escreveu um script de shell para me ajudar na implantação do site. Tudo finalmente vem junto como supostamente, mas o comando rsync se recusa a funcionar.

rsync --chmod="ug+rwx" -e="ssh" --filter="merge '/.deploy/filters'" --dry-run "/var/www/vhosts/staging/myhost.com/httpdocs/" "[email protected]:/var/www/vhosts/myhost.com/domains/myhost.com/httpdocs"

dá:
rsync: failed to open exclude file '/.deploy/filters': No such file or directory (2)

Alterar o caminho do arquivo de filtro para completo (relativo à raiz) não corrige o problema; somente o caminho no erro relatado muda:

--filter="merge /.deploy/filters"  

dá:
invalid modifier sequence at 'd' in filter rule: .deploy

Muito frustrante e desanimador. Por favor, alguém pode explicar?

UPDATE

Pensei que precisava esclarecer um pouco as coisas. Usar --filter="merge 'path'" sem aspas simples sempre gera o erro invalid modifier sequence .

--filter="merge '/relative/to/rsync/root/path'"

fornece o erro no such file or directory , além de usar

--filter="merge '/relative/to/rsync/root/path'"

e

--filter="merge '/absolute/path'"

e

--filter="merge 'relative/path'"
    
por XedinUnknown 31.10.2013 / 13:39

1 resposta

1

Veja o que estava acontecendo ...

Se usado com aspas simples, elas foram interpretadas literalmente como parte do nome do arquivo (como sugerido @reinierpost). Usado sem, o arquivo .deploy/filters estava sendo lido e analisado. No entanto, esse arquivo continha 1 linha (que não mencionei na descrição original):

.deploy

É esta regra que rsync estava reclamando, não o caminho original do arquivo de filtro.

Então, confirmado, o jeito certo é usar o valor do modificador de argumentos filter sem aspas simples.

    
por 01.11.2013 / 14:43

Tags