É possível executar o resultado do wget como um comando?

4

Eu tenho 10 máquinas VPS e todas elas precisam executar esse script que preciso mudar com frequência, mas não quero alterá-lo em 10 lugares, toda vez que preciso fazer uma alteração.

Eu coloquei o script como um arquivo de texto simples em um servidor HTTP remoto. Se eu pudesse wget este arquivo e executar o conteúdo, isso seria ótimo.

Mas não tenho certeza de como fazer isso ou se existem maneiras alternativas de atingir meu objetivo?

    
por KoKo 04.01.2014 / 19:56

2 respostas

9

Desde que você entenda os perigos, você pode canalizar a saída para um shell:

wget -O - http://foo.com/somescript | sh
    
por 04.01.2014 / 19:58
2

Você pode fazer isso de uma forma push ou pull.

Se você quiser usar a forma de extração, use wget ou curl . De cada host, faça:

wget -O- http://foo.com/somescript | bash

ou

bash <(wget -O- http://foo.com/somescript)

No entanto, pode ser mais fácil fazer o push. De um host central, faça:

for host in host1 host2 host3; do
  cat script.sh | ssh "$host" bash
done

Outra opção seria usar puppet ou chef . Mas dependendo do que você está fazendo, isso pode ser um pouco exagerado.

    
por 04.01.2014 / 20:22