#!/bin/bash
//设置脚本中所需命令的执行路径
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
// $? 是取得上面执行命令的返回值,一般正确为0,错误为1
if [ "$?" != 0 ] ;
then
//echo 为输出到屏幕
echo "Please check your need software"
//exit 0 为强制终止脚本
exit 0
fi
// 声明回滚函数(作用是删除解压出来的文件)
rollback(){
rm -rf apache-tomcat.tar.gz
rm -rf MySQL-client-5.5.31-2.rhel5.i386.rpm
rm -rf MySQL-server-5.5.31-2.rhel5.i386.rpm
rm -rf jdk-6u29-linux-i586-rpm.bin
rm -rf mysql.cnf
}
echo "Please choose to install or uninstall? (Installation: 1 / Uninstall: 0)"
//接收键盘输入,并把输入的值存放在userinput变量中
read userinput
//判断变量的值
if [ "$userinput" == '1' ] ;
then
//判断文件是否存在
if [ ! -e medical.tar.gz ] ;then
echo "I cann't find medical.tar.gz file."
exit 0
else//存在则赋权并解压
chmod 755 medical.tar.gz
tar zxvf medical.tar.gz
fi
################################### Verify #################################
//判断本机是否安装了jdkrpm -qa | grep jdkif [ "$?" == 0 ] ;then
echo "Already installed JDK, please uninstall!"
rollback;
exit 0
fi//判断8080端口是否被占用netstat -apn | grep 8080if [ "$?" == 0 ] ;then
echo "8080 port is occupied!"
rollback;
exit 0
fi//判断本机是否安装了mysqlrpm -qa | grep -i mysqlif [ "$?" == 0 ] ;then
echo "The system has been installed MySQL.Please run the uninstall!"
rollback;
exit 0
fi//判断目录是否已存在if [ -d /usr/tomcat-medical ] ;then
echo "/usr/tomcat-medical Directory exists"
rollback;
exit 0
fi//判断3306端口是否被占用netstat -apn | grep 3306if [ "$?" == 0 ] ;then
echo "3306 port is occupied"
rollback;
exit 0
fi
##################################### JDK ################################
//赋权并安装jdkchmod 755 jdk-6u29-linux-i586-rpm.bin
./jdk-6u29-linux-i586-rpm.bin//安装jdk的时候需要回车确认一下jdk的许可协议
#########################################################################
//rpm包的jdk安装完成会自动生成 java/jdk**** 的文件夹,判断是否生成了jdk文件夹if [ ! -d java/jdk1.6* ] ;then
echo "I cann't find JDK directory."
rollback;
exit 0
fi
############################## Environment Variables #########################
//将一段文本追加到指定文件尾部(写入环境变量)
cat >> /etc/profile << EFF
JAVA_HOME=/usr/java/jdk1.6.0_29
JRE_HOME=$JAVA_HOME/jre
CLASSPATH=:$JAVA_HOME/lib:$JRE_HOME/lib
PATH=$JAVA_HOME:/bin:$JRE_HOME/bin:$PATH
export JAVA_HOME JRE_HOME CLASSPATH PATH
EFF
//使环境变量立即生效
source /etc/profile
#########################################################################
//判断环境变量是否已经生效java -versionif [ "$?" != 0 ] ;then
echo "I cann't set java path."
rollback;
exit 0
fi
####################### Delete JDK Installation file #############################
rm -rf jdk-6u29-linux-i586.rpmrm -rf sun-javadb*
################################# MySQL ##################################
//赋权并安装mysqlchmod 755 MySQL-server-5.5.31-2.rhel5.i386.rpmrpm -ivh MySQL-server-5.5.31-2.rhel5.i386.rpm
################### Copy MySQL configuration file ##############################
//将一份已经准备好的配置文件替换mysql现有配置文件chmod 755 mysql.cnfcp mysql.cnf /usr/share/mysql/my-medium.cnfcp mysql.cnf /etc/my.cnf//启动或重启mysqlnetstat -apn | grep 3306if [ "$?" != 0 ] ;thenservice mysql startelseservice mysql restartfi//判断mysql是否启动成功netstat -apn | grep 3306if [ "$?" != 0 ] ;thenecho "MySQL service failed to start!"rollback;exit 0fi//安装mysql用户端chmod 755 MySQL-client-5.5.31-2.rhel5.i386.rpmrpm -ivh MySQL-client-5.5.31-2.rhel5.i386.rpm
################################ Tomcat ##################################
//赋权并解压tomcatchmod 755 apache-tomcat*.tar*tar zxvf apache-tomcat*.tar*mv apache-tomcat-6.0.32/ /usr/tomcat-medical/
################################ Medical ##################################
//赋权并解压应用到tomcat/webapps目录下chmod 755 medical.zipunzip medical.zip -d /usr/tomcat-medical/webapps///判断当前目录下是否存在Install.zdt文件,存在则copy文件到指定目录下if [ -e Install.zdt ] ;thencp Install.zdt /usr/tomcat-medical/webapps/medical/WEB-INF/data/installer/fi
########################### Change Password ################################
//等待5秒sleep 5//mysql默认密码为空,修改mysql密码(需要当前用户有mysql执行权限)mysqladmin flush-privileges password '******'
########################## Environment Variables #############################
//环境变量
cat >> /etc/profile << TTD
TOMCAT_HOME=/usr/tomcat-medical/
PATH=$PATH:$TOMCAT_HOME/bin/:/usr/local/apache2/bin:
export JAVA_HOME JRE_HOME CLASSPATH PATH TOMCAT_HOME
TTD
source /etc/profile
#########################################################################
//启动tomcatsh /usr/tomcat-medical/bin/startup.sh//这里延迟5秒等待tomcat启动完成sleep 5//判断tomcat状态curl 127.0.0.1:8080 | grep "Thanks for using Tomcat"if [ "$?" != 0 ] ;thenecho "I think install tomcat is unfinished ."rollback;exit 0firollback;
######################## Auto Start Up Services ###############################
//把tomcat启动脚本加入rc.local文件中实现开机自动启动cat >> /etc/rc.local << ASU/usr/tomcat-medical/bin/startup.shASU//设置mysql服务开机自动启动chkconfig --add mysql
########################################################################
//如果用户输入0的情况下执行卸载程序
elif [ "$userinput" == '0' ] ;
then
echo "Uninstalling Tomcat......"netstat -apn | grep 8080if [ "$?" == 0 ] ;thensh /usr/tomcat-medical/bin/shutdown.shfirm -rf /usr/tomcat-medical/echo "Uninstalling JDK......"rpm -e jdk-1.6.0_29-fcs.i586echo "Uninstalling MySQL......"netstat -apn | grep 3306if [ "$?" == 0 ] ;thenservice mysql stopfirpm -e MySQL-client-5.5.31-2.rhel5.i386rpm -e MySQL-server-5.5.31-2.rhel5.i386echo "Uninstall is complete please modify environment variables."
//如果用户输入的不是1或0则执行这里
else
echo "You can only enter 1 or 0."
fi