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

War es hilfreich?

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top