Installation von Java auf Linux mit ssh
Frage
Ich möchte Java installieren, auf vielen Rechnern mit ssh so dass ich ein Bash-Skript schreiben möchten, die (grob) tun:
for c in computers
do
scp jre--.rpm $c
ssh $c 'sudu -s; chmod a+x jre--.rpm ; ./jre--.rpm; echo "success!"'
done
Das Problem ist, dass ich während der Java-Installation muß die Mitteilung zu „lesen“ und „Ja“ am Ende ein. Wie mache ich es? Gibt es einen einfacheren Weg, als „erwarten“? Und wenn nicht, wie ich passe es in dem Bash-Skript?
Dank viel
Lösung 2
erwarten ist der Weg zu gehen (dank 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
Andere Tipps
Zuerst notieren Sie die notwendigen Tastenanschläge in einer Datei wie folgt aus:
cat > keystrokes
Hit Strg + C , wenn Sie mit der Aufnahme Tastatureingaben erfolgen. Überprüfen Sie den Dateiinhalt. Einige Tasten wie TAB möglicherweise nicht richtig aufnehmen, aber Sie können immer noch die Datei mit einem Texteditor bearbeiten. Beachten Sie, dass auf einer Konsole nach unten scrollen (z, wenn der Ausgabe von more
Lesen) kann in der Regel mit der Leertaste durchgeführt werden.
Sie können diese Datei scp wie Sie bereits mit der Drehzahl zu tun. Als nächstes Rohr der Inhalt der Tastenanschläge an der Standardeingabe der Installationsdatei:
cat keystrokes | ./someinstaller
Bearbeiten Es tut uns Leid, das zu hören funktioniert nicht. Vielleicht können Sie einen Blick auf erwarten , die ein Unix-Tool für diese Art der Sache entworfen ist . Ich denke, es enthalten ist in den meisten GNU / Linux Distributionen. Wenn Sie mit Python vertraut sind, können Sie es vorziehen, pexpect statt.