This post is a cookie . I m writing this in my limited free time : ) but it is interesting , as I will explain how to draw dialog boxes in standard linux shells. (note that I m not talking about X windows)
Let's start;
In order to draw a dialog box, we install dialog utility using yum. (my demo enviroment is Oracle Linux)
[root@demoorcl ~]#yum install dialog
...
.....
........
Installed:
dialog.x86_64 0:1.1-9.20080819.1.el6
Let's start;
In order to draw a dialog box, we install dialog utility using yum. (my demo enviroment is Oracle Linux)
[root@demoorcl ~]#yum install dialog
...
.....
........
Installed:
dialog.x86_64 0:1.1-9.20080819.1.el6
Then we look at the definition: via "man dialog" command.
manual says " dialog - display dialog boxes from shell scripts" :)
Next, we write a shell script to use the features of this dialog utility.
A shell script like the one below;
#!/bin/sh
DIALOG=${DIALOG=dialog}
tempfile=`tempfile 2>/dev/null` || tempfile=/tmp/test$$
$DIALOG --ok-label "Do the selected!" --cancel-label Exit --clear --title "Admin Interface" \
--menu "Choose the action to be taken:" 20 70 15 \
"1" "Check the integration" \
"2" "Shut down the integration Services" \
"3" "Startup the integration Services" \
"4" "Check the other services" \
"5" "Shut down the other services" \
"6" "Check the processes" 2> $tempfile
retval=$?
Next, we execute the script, and here our dialog is displayed... ->
Well, that is it.. We display a standard dialog.
In this simple dialog, when we hit exit button, the dialog is closed, but naturally; there is no event handler for "the selections"/"Do the selected" buttons, as our script did not include those events.
But if we want to go further and put all the event handlers, we can enhance our script and make it production ready .
An example script in this context is like the following;
Note that: This script is used in a production system, so I changed some paths and commented out some action lines. However, when you analyze it you will get idea and use the info for your own benefit.
#!/bin/sh
script=/root
DIALOG=${DIALOG=dialog}
tempfile=`tempfile 2>/dev/null` || tempfile=/tmp/test$$
$DIALOG --ok-label "Do the selected!" --cancel-label Exit --clear --title "Admin Interface" \
--menu "Choose the action to be taken:" 20 70 15 \
"1" "Check the integration" \
"2" "Shut down the integration Services" \
"3" "Startup the integration Services" \
"4" "Check the other services" \
"5" "Shut down the other services" \
"6" "Check the processes" 2> $tempfile
retval=$?
choice=`cat $tempfile`
case $retval in
0)
if [ $choice == "1" ]
then
ps -aux | grep eventprocessor | grep -v grep | grep -v Warning > /tmp/kontrol1
cat /tmp/kontrol1 | grep eventprocessor
if [ $? = "0" ]
then
dialog --exit-label "Back to Main Menu" --title " ENTEGRASYON KONTROL " --textbox $script/arayuz_durum1.txt 22 70
sh $script/main
else
dialog --exit-label "Back to Main Menu" --title " ENTEGRASYON KONTROL " --textbox $script/arayuz_durum2.txt 22 70
sh $script/main
fi
elif [ $choice == "4" ]
then
ps -aux | grep tomcat | grep -v grep | grep -v Warning > /tmp/kontrol2
cat /tmp/kontrol2 | grep tomcat
if [ $? = "0" ]
then
dialog --exit-label "Back to Main Menu" --title " ARAYUZ KONTROL " --textbox $script/tomcat_durum1.txt 22 70
sh $script/main
else
dialog --exit-label "Back to Main Menu" --title " ARAYUZ KONTROL " --textbox $script/tomcat_durum2.txt 22 70
sh $script/main
fi
elif [ $choice == "2" ]
then
ps -aux | grep eventprocessor | grep -v grep | grep -v Warning| awk '{print $2}' > /tmp/arayuz_pid
arayuz_pid=`cat /tmp/arayuz_pid|grep -v Warning`
sudo kill $arayuz_pid
dialog --exit-label "Back to Main Menu" --title " ENTEGRASYON KAPATILDI " --textbox $script/arayuz_kapatildi.txt 22 70
sh $script/main
elif [ $choice == "3" ]
then
sudo nohup sh /erm/eventprocessor/bin/run &
dialog --exit-label "Back to Main Menu" --title " ENTEGRASYON ACILDI " --textbox $script/arayuz_acildi.txt 22 70
sh $script/main
elif [ $choice == "5" ]
then
#sudo sh /erm/tomcat/apache-tomcat-5.5.17/bin/shutdown.sh &>/dev/null
sh /erm/tomcat/apache-tomcat-5.5.17/bin/shutdown.sh &>/dev/null
dialog --exit-label "Back to Main Menu" --title " ARAYUZ KAPATILDI " --textbox $script/tomcat_kapatildi.txt 22 70
sh $script/main
elif [ $choice == "6" ]
then
sudo nohup sh /erm/tomcat/apache-tomcat-5.5.17/bin/startup.sh
#sudo sh /erm/tomcat/apache-tomcat-5.5.17/bin/startup.sh &>/dev/null
# sudo sh /home/helpdesk/arayuz_script/tomcat_start.sh
dialog --exit-label "Back to Main Menu" --title " ARAYUZ ACILDI " --textbox $script/tomcat_acildi.txt 22 70
sh $script/main
else
echo ...
fi
;;
1)
echo "Program Exited"
;;
255)
echo "ESC pressed."
;;
esac
Okay, here we go..
Let's execute this script (named Main)
sh Main
We press enter(equivalent to "Do the selected") while our selection line is on "Check the integration";
Well, the action is taken in the backround to check the integration control, and the status of the integration is reported in the dialog :) .. Actually, I modified the script to not to show what is done there, as it is a production code :)
Here we are in Main Menu again ..
So that is it. You can go further and create your own dialogs, you can even add control mechanisms and enhance your dialogs accordingly. By the help of this admin dialogs, you can ease the job of Linux and Oracle admins and even offload some works to the Operators.
That's enough for today.
See you in next blog posts :)
No comments :
Post a Comment
If you will ask a question, please don't comment here..
For your questions, please create an issue into my forum.
Forum Link: http://ermanarslan.blogspot.com.tr/p/forum.html
Register and create an issue in the related category.
I will support you from there.