質問

私は私が行いますbashスクリプトを書きたいので、SSHを使用して多くのコンピュータ上でJavaをインストールしたい(およそ):

for c in computers
do    
   scp jre--.rpm $c
   ssh $c 'sudu -s; chmod a+x jre--.rpm ; ./jre--.rpm; echo "success!"'
done

問題は、Javaのインストール時に、私は予告を「読み取り」、最後に「はい」と入力する必要があるということです。どうすればいいのですか? 「期待」よりも簡単な方法はありますか?そして、どのように私はbashスクリプトで、それに適合しない場合はどうなりますか?

おかげでたくさんの

役に立ちましたか?

解決 2

期待して行く方法である(感謝 http://www.dnmouse.org/java.html の):

   for c in computers
   do    
       scp jre--.rpm $c
       ssh -t $c 'sudo -s; yum -y install expect; sudo chmod a+x jre--.rpm'
       ssh -t $c '/usr/bin/expect -c \
       "set timeout -1; spawn ./jre-6u13-linux-x64-rpm.bin; sleep 1; send -- q\r; sleep 1; send -- yes\r; expect eof"
       echo "success!"'
   done

他のヒント

まず、このようなファイルに必要なキーストロークを記録します:

cat > keystrokes
録音キーストロークを完了したら、

Ctrlキー + C ヒット。ファイルの内容を確認してください。 TABのようないくつかのキーが適切に記録しないかもしれないが、あなたはまだ、テキストエディタでファイルを編集することができます。なお、コンソール上でスクロールダウン(例えばときmoreからの出力を読み取る)は、典型的には、スペースバーを行うことができます。

あなたはすでに回転数をどうのように、このファイルをscpができます。次に、インストーラの標準入力にパイプキーストロークファイルの内容をます:

cat keystrokes | ./someinstaller

編集は、それが動作しません聞いて申し訳ありません。たぶん、あなたはこの種のもののために設計されたUnixのツールである期待を、見てみることができ。私はそれがほとんどののGNU / Linuxののディストリビューションに含まれていると思います。あなたのpythonに精通している場合は、代わりに pexpect のを好むことがあります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top