Question

Je veux installer Java sur de nombreux ordinateurs en utilisant ssh donc je veux écrire un script bash qui va faire (à peu près):

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

Le problème est que lors de l'installation de java je dois « lire » l'avis et le type « oui » à la fin. Comment fait-on ça? Y at-il un moyen plus facile que « attendre »? Et sinon comment je forme dans le script bash?

Merci beaucoup

Était-ce utile?

La solution 2

attendre est la voie à suivre (merci 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

Autres conseils

Tout d'abord, enregistrer les frappes de touches nécessaires à un fichier comme ceci:

cat > keystrokes

Appuyez sur Ctrl + C lorsque vous avez terminé l'enregistrement des frappes. Vérifiez le contenu du fichier. Certaines touches TAB comme ne peuvent pas enregistrer correctement, mais vous pouvez toujours modifier le fichier avec un éditeur de texte. Notez que le défilement vers le bas sur une console (par exemple lors de la lecture de sortie more) peut généralement être fait avec la barre d'espace.

Vous pouvez scp ce fichier comme vous le faites déjà avec le régime. Ensuite, tuyau le contenu des frappes fichier à l'entrée standard de l'installateur:

cat keystrokes | ./someinstaller

modifier Désolé d'entendre cela ne fonctionne pas. Peut-être que vous pouvez jeter un oeil à attendre , qui est un outil Unix conçu pour ce genre de chose . Je pense qu'il est inclus dans la plupart gnu / linux distributions. Si vous êtes familier avec python vous préférez pexpect à la place.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top