Caminho alternativo para arquivos scp / cp para o servidor remoto com caminho de destino curinga

0

Estou tentando copiar um único arquivo do servidor local para uma lista de servidores descritos em servers.txt. O caminho de destino é algo como / local / opt / path1 / sub / * / lib / file.jar

o * pode corresponder a qualquer pasta lá.

 ls -ltrh  /local/opt/path1/sub/*/lib/file.jar

-rw-r--r-- 1 user user 538K Jan 31  2011 /local/opt/path1/sub/production/lib/file.jar
-rw-r--r-- 1 user user 538K Jan 31  2011 /local/opt/path1/sub/default/lib/file.jar
-rw-r--r-- 1 user user 538K Jan 31  2011 /local/opt/path1/sub/all/lib/file.jar

Mas se eu tentar como

for i in 'cat servers.txt' do scp file.jar user@$i: /local/opt/path1/sub/*/lib/; done

Ele mostrará um erro como um destino ambíguo. Depois de algum googling, eu entendi que vários alvos não são suportados por cp ou suas variantes como scp. Agora eu tenho uma idéia para listar as pastas primeiro usando o comando find.

o comando find será como

find /local/opt/path1/sub/ -name file.jar

Mas como implementar isso no meu script?

    
por Unnikrishnan 31.05.2017 / 09:34

1 resposta

0

Tente mudar

for i in 'cat servers.txt' do scp file.jar user@$i: /local/opt/path1/sub/*/lib/; done

para

for i in 'cat servers.txt' do scp file.jar user@$i:/local/opt/path1/sub/*/lib/; done

Remova o espaço entre user@$i: e /local/opt/path1/sub/*/lib/

    
por 08.06.2017 / 00:57