#!/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