SSHを使用してLinux上でJavaをインストールします
質問
私は私が行います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 のを好むことがあります。
所属していません StackOverflow