SSH로 인해 Rsync 와일드카드 확장이 중단됨

SSH로 인해 Rsync 와일드카드 확장이 중단됨

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 옵션을 추가하자마자 와일드카드 확장이 중단됩니다...

도움이나 해결 방법을 알려주시면 감사하겠습니다.

감사합니다.

답변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]

첫 번째 시도의 응답 skipping directory .은 전송할 것이 아무것도 없다는 것입니다. 주로 rsync재귀를 사용해야 한다는 표시를 생략했기 때문입니다. 여기서는 --archive또는 --recursive플래그를 사용합니다.

관련 정보