web-dev-qa-db-ja.com

wgetの結果をコマンドとして実行することは可能ですか?

私は10台のVPSマシンを使用しており、それらすべてで頻繁に変更する必要があるこの1つのスクリプトを実行する必要がありますが、変更する必要があるたびに10か所で変更したくありません。

スクリプトをプレーンテキストファイルとしてリモートHTTPサーバーに配置しました。このファイルをwgetしてコンテンツを実行できれば、それは素晴らしいことです。

しかし、私はそれを行う方法がわかりません、または私の目標を達成するための代替方法があるかどうか?

4
KoKo

危険性を理解している限り、出力をシェルにパイプすることができます。

wget -O - http://foo.com/somescript | sh
10
jordanm

これは、プッシュまたはプルの方法で実行できます。

プル方式で実行したい場合は、wgetまたはcurlを使用できます。各ホストから:

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

または

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

ただし、プッシュ方式の方が簡単な場合があります。中央ホストから:

for Host in Host1 Host2 Host3; do
  cat script.sh | ssh "$Host" bash
done

別のオプションは、puppetまたはchefを使用することです。しかし、あなたがしていることに応じて、それは少しやり過ぎかもしれません。

2
michas