shell操作菜单

#!/bin/sh

#The path of shell and binary files
SHELL_PATH=/home/pcl/bin

#The path of oracle
ORACLE_HOME=/oracle/app/product/10g

#The path of WebSphere
#WEBSPHERE_HOME=/was/profiles/
WEBSPHERE_HOME=/was/cxgz/cxgz

#The user name of database used for query
DB_USERNAME=oracle


#The base location of oracle data for store backup files
DB_BAK_BASEPATH=/oraback/cxgzdb/




display_menu()
{
	#Clear the screen
	clear
	
	#Show menu
	echo "*========================================================================*"
	echo "*                                                                        *"
	echo "*                ######储蓄国债系统日常系统维护                *"
	echo "*                                                                        *"
	echo "* 主机名:`hostname`\c"
	
	hostname_len=`hostname|wc -c`
	while [ $hostname_len -lt 53 ]
	do
		echo " \c"
		hostname_len=`expr $hostname_len + 1`
	done
	
	echo "`date +%Y/%m/%d` *"
	echo "*------------------------------------------------------------------------*"
	echo "*   1. 启动储蓄国债数据库                                                *"
	echo "*   2. 停止储蓄国债数据库                                                *"
	echo "*   3. 启动国债管理 WebSphere                                            *"
	echo "*   4. 停止国债管理 WebSphere                           					       *"
	echo "*   5. 启动国债前台 WebSphere                                            *"
	echo "*   6. 停止国债前台 WebSphere                           					       *"
	echo "*   7. 启动国债MCIP应用	            				                             *"
	echo "*   8. 停止国债MCIP应用						                                       *"
	echo "*   9. 储蓄国债数据库全备份					                                     *"
	echo "*   10. 备份数据全备份到磁带机                                           *"
	echo "*   0. 退出                                                              *"
	echo "**************************************************************************"
}

get_char()
{
	SAVEDSTTY=`stty -g`
	stty -echo
	stty raw
	dd if=/dev/tty bs=1 count=1 2> /dev/null
	stty -raw
	stty echo
	stty $SAVEDSTTY
}


while :
do

	display_menu
	
	while :
	do
		echo "请选择本次操作:\c"
		read CHOISE
		case $CHOISE in
			1|2|3|4|5|6|7|8|9|10|0)
				break
				;;
		
			*)
				echo "无效的选项,请重新选择"
	    	;;
	  esac
	done;
	
	case $CHOISE in


		1)
			echo "确认要启动储蓄国债数据库吗?[y|n]\c"
			read CHOISE
			case $CHOISE in
				y|Y)
				
					echo "开始启动储蓄国债数据库..."
				  proc=`ps -ef|grep ora_|grep cxgzdb|grep -v grep|wc -l`
				  if [ $proc -gt 0 ];
				  then
				  	echo "储蓄国债数据库已启动"
				  else

				  	su - oracle -c "export ORACLE_SID=cxgzdb;startdb.sh"	
				  				  				  	
				  	proc=`ps -ef|grep ora_|grep cxgzdb|grep -v grep|wc -l`
				  	if [ $proc -lt 1 ];
				  	then
				  		echo "储蓄国债数据库启动失败"
				  	fi
				  fi
				  
					echo "按任意键返回菜单\c"
					get_char
					;;
			esac
			;;

		2)
			echo "确认要停止储蓄国债数据库吗?[y|n]\c"
			read CHOISE;
			case $CHOISE in
				y|Y)
				  
				  echo "开始停止储蓄国债数据库..."
				  proc=`ps -ef|grep ora_|grep cxgzdb|grep -v grep|wc -l`
				  if [ $proc -lt 1 ]
				  then
				  	echo "储蓄国债数据库未启动"
				  else

				  	su - oracle -c "export ORACLE_SID=cxgzdb;stopdb.sh"
				 			  
				  	proc=`ps -ef|grep ora_|grep cxgzdb|grep -v grep|wc -l`
				  	if [ $proc -gt 0 ]
				  	then
				  		echo "储蓄国债数据库停止失败"
				  	fi
				  fi

					echo "按任意键返回菜单\c"
					get_char
					;;
			esac
			;;

		3)
			echo "确认要启动国债管理 WebSphere吗?[y|n]\c"
			read CHOISE
			case $CHOISE in
				y|Y)		
				  echo "开始启动国债管理 WebSphere"
					proc=`ps -ef|grep java|grep savings|grep -v grep|wc -l`
				  if [ $proc -gt 0 ];
				  then
				  	echo "国债管理 WebSphere已启动"
				  else
				  	$WEBSPHERE_HOME/savings/bin/startServer.sh server1			  	
				  	proc=`ps -ef|grep java|grep savings|grep -v grep|wc -l`
				  	if [ $proc -lt 1 ];
				  	then
				  		echo "国债管理 WebSphere启动失败"
				  	fi
				  fi	
          echo "按任意键返回菜单\c"
					get_char
					;;
			esac
			;;			
			
	  4)
			echo "确认要停止国债管理 Websphere吗?[y|n]\c"
			read CHOISE;
			case $CHOISE in
				y|Y)	  			
	    echo "开始停止国债管理 Websphere..."
					proc=`ps -ef|grep java|grep savings|grep -v grep|wc -l`
				  if [ $proc -lt 1 ]
				  then
				  	echo "国债管理 Websphere未启动"
				  else
						$WEBSPHERE_HOME/savings/bin/stopServer.sh server1
				  	sleep 5
				  	proc=`ps -ef|grep java|grep savings|grep -v grep|wc -l`
				  	if [ $proc -gt 0 ]
				  	then
				  		echo "国债管理 Websphere停止失败"
				  	fi
				  fi					
				  echo "按任意键返回菜单\c"
					get_char
					;;
			esac
			;;
			5)
			echo "确认要启动国债前台 WebSphere吗?[y|n]\c"
			read CHOISE
			case $CHOISE in
				y|Y)		
				  echo "开始启动国债前台 WebSphere"
					proc=`ps -ef|grep java|grep cxgz|grep -v grep|wc -l`
				  if [ $proc -gt 0 ];
				  then
				  	echo "国债前台 WebSphere已启动"
				  else
				  	$WEBSPHERE_HOME/bin/startServer.sh server1			  	
				  	proc=`ps -ef|grep java|grep cxgz|grep -v grep|wc -l`
				  	if [ $proc -lt 1 ];
				  	then
				  		echo "国债前台 WebSphere启动失败"
				  	fi
				  fi	
          echo "按任意键返回菜单\c"
					get_char
					;;
			esac
			;;			
			
	  6)
			echo "确认要停止国债前台 Websphere吗?[y|n]\c"
			read CHOISE;
			case $CHOISE in
				y|Y)	  			
	    echo "开始停止国债前台 Websphere..."
					proc=`ps -ef|grep java|grep cxgz|grep -v grep|wc -l`
				  if [ $proc -lt 1 ]
				  then
				  	echo "国债前台 Websphere未启动"
				  else
						$WEBSPHERE_HOME/bin/stopServer.sh server1
				  	sleep 5
				  	proc=`ps -ef|grep java|grep cxgz|grep -v grep|wc -l`
				  	if [ $proc -gt 0 ]
				  	then
				  		echo "国债前台 Websphere停止失败"
				  	fi
				  fi					
				  echo "按任意键返回菜单\c"
					get_char
					;;
			esac
			;;
			7)
			echo "确认要启动国债应用吗?[y|n]\c"
			read CHOISE;
			case $CHOISE in
				y|Y)	  			
	    echo "开始启动应用..."
				
						su - gzjy -c "startgzjy.sh"		  	
				  			
				  echo "按任意键返回菜单\c"
					get_char
					;;
			esac
			;;
			
			8)
			echo "确认要停止国债应用吗?[y|n]\c"
			read CHOISE;
			case $CHOISE in
				y|Y)	  			
	    echo "开始停止国债应用..."
					
						su - gzjy -c "stopgzjy.sh"
				  	
			
				  echo "按任意键返回菜单\c"
					get_char
					;;
			esac
			;;
			
		9)
			echo "确认要备份储蓄国债数据库数据吗?[y|n]\c"
			read CHOISE;
			case $CHOISE in
				y|Y)
					export ORACLE_SID=cxgzdb
#					echo "检查储蓄国债数据库状态..."
				      proc=`ps -ef|grep ora_|grep cxgzdb|grep -v grep|wc -l`
				      if [ $proc -lt 1 ]
				      then
				   	    echo "cxgzdb数据库未启动,请先启动数据库..."
				      else
							echo "开始 $ORACLE_SID 数据库备份"
							DB_BAK_PATH=$DB_BAK_BASEPATH
							echo "备份目录:$DB_BAK_PATH"									  		
				  		echo "装载 $ORACLE_SID 数据库进行RMAN备份"
					  	su - oracle -c "$SHELL_PATH/oraRMAN.sh $ORACLE_SID $DB_BAK_PATH "
		          fi
					echo "按任意键返回菜单\c"
					get_char
					;;
			esac
			;;	
		10)
			echo "确认要开始将备份数据全备份到磁带机吗?[y|n]\c"
			read CHOISE
			case $CHOISE in
				y|Y)
					  
					  echo "\n开始备份磁带...\c"
#				  		echo "\n请在磁带机中放入磁带...回车开始备份...... \c"
#				  		read ans

            /home/pcl/bin/tape_backup.sh $DB_BAK_BASEPATH/fullbackup
             if [ $? -ne 0 ]
             then
                echo "备份到磁带(/dev/rmt0)未能成功请检查备份日志!\n"
                echo "^[[41m An error encountered!^[[40m"
                exit 1
             fi
						 echo "\n按任意键返回菜单\c"
					get_char
					;;
			esac
			;;

	
		0)
			exit 0;
			;;
	
	esac

done
#stty -echo

猜你喜欢

转载自microjava.iteye.com/blog/549066