Expansão de curingas Rsync quebrada com SSH

0

Ansible gera:

/usr/bin/rsync --delay-updates -F --compress --archive --rsh 'ssh -S none -o StrictHostKeyChecking=no -C -o ControlMaster=auto -o ControlPersist=60s -o PreferredAuthentications=publickey -o ExitOnForwardFailure=yes -o User=ansible' --rsync-path="sudo rsync" --out-format='<<CHANGED>>%i %n%L' template.ephemeric.local:/home/*/bin/ /tmp/test/

Eu removo:

/usr/bin/rsync --rsh 'ssh -o User=ansible' template.ephemeric.local:/home/*/bin/ /tmp/test/

e obtenha:

rsync: change_dir "/home/*/bin" failed: No such file or directory (2)

Isso funciona:

/usr/bin/rsync --rsh ssh template.ephemeric.local:/home/*/bin/ /tmp/test/
receiving incremental file list
./
new4
sent 33 bytes  received 164 bytes  394.00 bytes/sec
total size is 0  speedup is 0.00

Agora, o que na terra poderia ser isso? Assim que eu adiciono qualquer opção SSH, ela quebra a expansão do curinga ...

Qualquer ajuda / soluções muito apreciadas.

Obrigado.

    
por Robert Gabriel 28.10.2016 / 13:16

1 resposta

1

Não tem nada a ver com o número de parâmetros para --rsh . É só que o seu usuário remoto ansible não pode ver uma expansão de /home/*/bin/

Aqui está um exemplo local. Eu tenho pelo menos um diretório correspondente a /home/*/bin , mas nenhum que corresponda a /home/*/bins :

rsync --rsh 'ssh -o User=roaima' remotehost:/home/*/bin/ /tmp/bins/
skipping directory .

rsync --rsh 'ssh -o User=roaima' remotehost:/home/*/bins/ /tmp/bins/
rsync: change_dir "/home/*/bins" failed: No such file or directory (2)
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1668) [Receiver=3.1.2]

A resposta skipping directory . na primeira tentativa está me dizendo que não havia nada a transferir - principalmente porque omiti para indicar que rsync deveria usar recursão. As bandeiras --archive ou --recursive seriam úteis aqui.

    
por 28.10.2016 / 14:51