Rsync-Wildcard-Erweiterung mit SSH defekt

Rsync-Wildcard-Erweiterung mit SSH defekt

Ansible generiert:

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

Ich zerlege es:

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

und bekomme:

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

Das funktioniert:

/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

Was in aller Welt könnte das sein? Sobald ich irgendwelche SSH-Optionen hinzufüge, wird die Wildcard-Erweiterung unterbrochen ...

Für jede Hilfe/Problemumgehung bin ich sehr dankbar.

Danke schön.

Antwort1

Es hat nichts mit der Anzahl der Parameter zu tun --rsh. Es ist nur so, dass Ihr Remote-Benutzer ansiblekeine Erweiterung von sehen kann./home/*/bin/

Hier ist ein lokales Beispiel. Ich habe mindestens ein passendes Verzeichnis, /home/*/binaber keins, das passt /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]

Die skipping directory .Antwort beim ersten Versuch sagt mir, dass nichts zu übertragen war – hauptsächlich, weil ich vergessen habe anzugeben, dass rsyncRekursion verwendet werden soll. Die Flags --archiveoder --recursivewären hier hilfreich.

verwandte Informationen