2017-04-13 1 views
0

Donc, je dois configurer plusieurs serveurs qui requièrent mysql-server sur chacun d'entre eux. J'ai décidé d'écrire un script shell pour entrer une entrée à whiptail qui demande à l'utilisateur d'entrer le mot de passe. J'ai écrit le script bash mais il ne répond pas quand il atteint la page whiptail, quelqu'un peut-il m'aider avec ça? Mercicomment fournir une entrée pour whiptail en utilisant commhe et ligne

#!/bin/bash 
sudo apt-get install mysql-server <<< "yes 
mypassword 
" 

d'abord lorsque le sudo apt-get demander sur l'opportunité d'installer ou non il fournit oui, mais quand il est venu à whiptail il ne fournit aucune entrée comme il devrait être ce qui est mypassword

enter image description here

+0

Ne comprends pas. Je n'ai vu aucun appel de "whiptail" dans ce qui précède. Si vous voulez dire pourquoi 'sudo' n'accepte pas le mot de passe du stdin, lisez le' man sudo' et découvrez le '-S' ou le' -A'. – jm666

+0

@ jm666 Bonjour j'ai mis à jour ma question – dramasea

Répondre

0

plutôt que de fournir à l'entrée whiptail, vous pouvez exécuter apt-get install comme ceci pour sauter les invites lors de l'installation:

DEBIAN_FRONTEND="noninteractive" apt-get install -y mysql-server 

Si vous souhaitez fournir un mot de passe root et, vous pouvez le faire:

export DEBIAN_FRONTEND="noninteractive" 

sudo debconf-set-selections <<< "mysql-server mysql-server/root_password password myrootpw" 
sudo debconf-set-selections <<< "mysql-server mysql-server/root_password_again password myrootpw" 

sudo apt-get install -y mysql-server 

Prenez soin d'exposer accidentellement votre mot de passe root (à savoir assurez-vous qu'il ne finisse pas dans votre histoire, supprimez en toute sécurité tous les fichiers de script qui le contiennent, je suis sûr qu'il y en a d'autres). J'ai trouvé cette information here.