menu réalisé par un script
Bonjour,
J'aimerais faire un menu via un script shell afin de starter, stopper ou faire un status du measureware ou ovpa (selon la release des serveurs) sur un ou plusieurs serveurs.
Mon problème c'est que ce script doit s'adapter à chaque serveurs.
J'ai trois façons différentes de starter et stopper:
Code:
1 2 3
| sudo /etc/init.d/ovpa start/stop
sudo /etc/init.d/mwa start/stop
sudo /sbin/init.d/mwa start/stop |
et deux façons de faire un status:
Comme vous pouvez voir ci dessous, mon code laisse à désirer :aie:...il faut m'excuser mais je débute dans les scripts et celui la est mon premier....:oops:
Je me retourne vers vous car je pense qu'il pourrait être beaucoup plus simple et surtout fonctionnel....ce qui n'est pas tout à fait le cas.
Auriez-vous une solution relativement simple à me proposer?
Merci d'avance,
Rouget
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121
|
#!/usr/bin/ksh
#
#
#========================================================
#script_relance_MWA
#========================================================
#
menu_selection="1";
export menu_selection
while ( [ "$menu_selection" != "0" ] )
do
clear
echo "======================================"
echo "======================================"
echo "========== MWA ou OVPA ==============="
echo "== =="
echo "== Start MWA/OVPA = 1 =="
echo "== =="
echo "== Stop MWA/OVPA = 2 =="
echo "== =="
echo "== STATUS MWA/OVPA = 3 =="
echo "== =="
echo "======================================"
echo "== EXIT = 0 =="
echo "======================================"
echo " Selection: \c"
read menu_selection
case $menu_selection in
1)
echo "!!!start measure ware!!!"
sudo /etc/init.d/ovpa start
if [ "$?" == "1" ];
then
sudo /sbin/init.d/mwa start
if [ "$?" == "1" ];
then
sudo /etc/init.d/mwa start
if [ "$?" == "1" ];
then
echo " "
else
echo "measureware demarre !!!!"
echo
echo " Press RETURN to continue"
read reply
fi
else
echo "measureware demarre !!!!"
echo
echo " Press RETURN to continue"
read reply
fi
else
echo "!!! ovpa demarre !!!!"
echo
echo " Press RETURN to continue"
read reply
fi
;;
2)
echo "attention vous allez stopper la surveillance de la performance du serveur"
echo
echo "voulez vous continuez y ou n"
read reponse
if [ "$REPONSE" == "n" ]
then
exit 0
else
sudo /etc/init.d/ovpa stop
if [ "$?" == "1" ]
then
sudo /sbin/init.d/mwa stop
if [ "$?" == "1" ]
then
sudo /etc/init.d/mwa stop
if [ "$?" == "1" ]
then
echo " "
else
echo "measureware stop"
echo
echo " Press RETURN to continue"
read reply
fi
else
echo "measureware stop"
echo
echo " Press RETURN to continue"
read reply
fi
else
echo "measureware stop"
echo
echo " Press RETURN to continue"
read reply
fi
fi
;;
3)
echo "statut en cours"
mwa status
echo
echo " Press RETURN to continue"
read reply
;;
0)
clear
exit
;;
*)
echo
banner "!!!"
echo
echo " Press RETURN to continue"
read reply
;;
esac
done |
script simplifié et fonctionnel
Bonjour,
Par rapport au script précédemment posté, j'ai enlevé toutes les fonctions if sur le choix des commandes.
Résultat beaucoup plus simple et surtout il devient fonctionnel.
Par contre, j'ai des erreurs qui apparaissent lorsque les commandes ne sont pas trouvées (command not found).
Serait-il possible d'éliminer l'apparition de ces erreurs?
Je vous pose le script tel qu'il a été réalisé, si vous voyez des défauts ou des améliorations!!!!
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88
|
#!/usr/bin/ksh
#
#
#========================================================
#script_relance_MWA
#========================================================
#
menu_selection="1";
export menu_selection
OVPASTART='sudo /etc/init.d/ovpa start'
OVPASTOP='sudo /etc/init.d/ovpa stop'
OVPASTAT='ovpa status'
SBINSTART='sudo /sbin/init.d/mwa start'
SBINSTOP='sudo /sbin/init.d/mwa stop'
ETCSTART='sudo /etc/init.d/mwa start'
ETCSTOP='sudo /etc/init.d/mwa stop'
while ( [ "$menu_selection" != "0" ] )
do
clear
echo "======================================"
echo "======================================"
echo "========== MWA ou OVPA ==============="
echo "== =="
echo "== Start MWA/OVPA = 1 =="
echo "== =="
echo "== Stop MWA/OVPA = 2 =="
echo "== =="
echo "== STATUS MWA/OVPA = 3 =="
echo "== =="
echo "======================================"
echo "== EXIT = 0 =="
echo "======================================"
echo " Selection: \c"
read menu_selection
case $menu_selection in
1)
echo "!!!start measureware!!!"
$OVPASTART
$SBINSTART
$ETCSTART
echo "measureware demarre !!!!"
echo
echo " Press RETURN to continue"
read reply
;;
2)
echo "attention vous allez stopper la surveillance de la performance du serveur"
echo
echo "voulez vous continuez y ou n"
read reponse
if [ "$REPONSE" == "n" ]
then
exit 0
else
$OVPASTOP
$SBINSTOP
$ETCSTOP
echo "measureware stop"
echo
echo " Press RETURN to continue"
read reply
fi
;;
3)
echo "statut en cours"
mwa status
ovpa status
echo
echo " Press RETURN to continue"
read reply
;;
0)
clear
exit
;;
*)
echo
banner "!!!"
echo
echo " Press RETURN to continue"
read reply
;;
esac
done |
Merci d'avance pour votre aide.
Rouget