Расширение подстановочного знака Rsync нарушено из-за SSH

Ansible генерирует:

/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/

Я сокращаю его:

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

и получаю:

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

Это работает:

/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

Так что же, черт возьми, это могло быть? Как только я добавляю какие-либо параметры SSH, расширение подстановочных знаков прерывается ...

Любая помощь / обходные пути приветствуются.

Спасибо.

0
28.10.2016, 14:16
1 ответ

Это не имеет ничего общего с количеством параметров - rsh . Просто ваш удаленный пользователь ansible не может видеть расширение / home / * / bin /

Вот локальный пример. У меня есть по крайней мере один каталог, соответствующий / home / * / bin , но ни один соответствующий / 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]

Каталог пропуска . ответ в первой попытке сообщает мне, что передавать нечего - главным образом потому, что я не указал, что rsync должен использовать рекурсию. Здесь могут быть полезны флаги - архив или - рекурсивный .

1
28.01.2020, 02:47

Теги

Похожие вопросы