shell脚本 自动安装

sh setup.sh -n -f tianwei_param.properties

setup.sh:

#/bin/sh


ISSTART=""
IsInputParam=""
InputParamFile=""
VERSION=`grep "ProductVersion" version.lv | awk -F '=' '{print $2}'`
PORTALMSPORT=8881
INSTALL_LOG="/tmp/portalMS_install.log"
PORTALMS_HOME="/usr/local/portalMS"
CURRENT_DIR=`pwd`
PARAM_PATH=/var/portalMS/
JBOSS_NAME=jboss5.tar.gz
PARAM_FILE=param.properties
dbType=oracle
datasourceType=datasource.properties
oracleDialect=OracleDialect
mysqlDialect=MySQLDialect
dbUrl=""
dbUserName=""
dbPassword=""
portalUrl=""
IAGUrl=""
amsUrl=""
sdpAdapterUrl=""
ottUrl=""
grmUrl=""
systemEdition=""
systemDeployType=""
rankFlag=""
systemLevelType=""
localCity=""
childCitys=""
UifConfigFilePath=""
oracleDriver="oracle.jdbc.driver.OracleDriver"
mysqlDriver="com.mysql.jdbc.Driver"
defaultUrl="http://127.0.0.1"
crontabPath="/etc/crontab"
deamonPath="/usr/local/portalMS/jboss5/bin/demon.sh"
localeShort=""
localLanguage=""
uifLanguage=""

export PORTALMS_HOME
export PORTALMSPORT
export VERSION
export INSTALL_LOG
export PARAM_PATH
export PARAM_FILE

#检查环境是否可用
checkEnv()
{
    #删除日志文件
    rm -rf $INSTALL_LOG >/dev/null 2>&1;
    if [ ! -d "$PORTALMS_HOME" ]; then
        mkdir $PORTALMS_HOME
    fi;    
    echo -e "\033[32;49;1m [----------------check env begin--------------] \033[39;49;0m"
    echo "`date`-----------check env begin--------------" >> $INSTALL_LOG 2>&1;
    
    #1检查是否已经安装PORTALMS,如果存在,则先执行shutdown脚本,然后删除该目录
    if [ -d "$PORTALMS_HOME/jboss5" ]; then
        echo "`date` Start to stop portalMS service." >> $INSTALL_LOG 2>&1;
          
        #检查PORTALMS服务是否已经启动
        portNum1=`netstat -an | grep ${PORTALMSPORT} | awk '{print $4}' | awk -F ':' '{print $2}' | grep ^${PORTALMSPORT} | wc -l`
        if [ $portNum1 -gt 0 ]; then
            cd $PORTALMS_HOME/jboss5/bin/
            sh stop.sh >> $INSTALL_LOG 2>&1;
        fi;     
        
        #删除目录
        rm -rf $PORTALMS_HOME/jboss5 >> $INSTALL_LOG 2>&1;
        cd $CURRENT_DIR
    fi;
    echo -e "\033[32;49;1m [-----------------check env end---------------] \033[39;49;0m"
    echo "-----------`date` check env end--------------" >> $INSTALL_LOG 2>&1;
    
}

#开始安装
install()
{   
    echo "-----------`date` install software begin--------------" >> $INSTALL_LOG 2>&1;
    echo -e "\033[32;49;1m [-----------install software begin------------] \033[39;49;0m"
    
    if [ "${InputHomePath}" != "" ]; then
        
    # 拷贝portalMS配置文件
    cp -rf config/portalMS  $PORTALMS_HOME/jboss5/bin/ >> $INSTALL_LOG 2>&1;
    cp -rf config/monitor  $PORTALMS_HOME/jboss5/bin/ >> $INSTALL_LOG 2>&1;

        #copy war包到JBoss发布目录
        echo "-----------`date` start to untar tar-----------------" >> $INSTALL_LOG 2>&1;
        echo -e "\033[32;49;1m [-----------start to untar tar---------------] \033[39;49;0m"
        cp -rf war/portalMS.war $systemDeployPath
        cd $PORTALMS_HOME

        echo "-----------`date` end to untar tar----------------" >> $INSTALL_LOG 2>&1;
        echo -e "\033[32;49;1m [-----------end   to untar tar---------------] \033[39;49;0m"
    # 修改文件夹权限
        chmod 755 -R $PORTALMS_HOME
    
    #修改必要配置
        config;
    
    else
        #copy tar文件到安装目录,解压Jboss文件夹
        echo "-----------`date` start to untar jboss5-----------------" >> $INSTALL_LOG 2>&1;
        echo -e "\033[32;49;1m [-----------start to untar jboss5---------------] \033[39;49;0m"
        
        # 检查tools下面是否有jboss工具
        if [ ! -e tools/$JBOSS_NAME ]; then
        echo "-----------`date` $JBOSS_NAME is not exist in dir tools--------------" >> $INSTALL_LOG 2>&1;
        echo -e "\033[31;49;1m [-------$JBOSS_NAME is not exist in dir tools-------] \033[39;49;0m"
        exit 1;    
        fi;

        cp tools/$JBOSS_NAME $PORTALMS_HOME
        cd $PORTALMS_HOME
        tar -xf $JBOSS_NAME
        rm -rf $JBOSS_NAME >> $INSTALL_LOG 2>&1;
        cd - >> $INSTALL_LOG 2>&1;
        echo "-----------`date` end to untar jboss5----------------" >> $INSTALL_LOG 2>&1;
        echo -e "\033[32;49;1m [-----------end   to untar jboss5---------------] \033[39;49;0m"
        
        # 修改文件夹权限
        chmod 755 -R $PORTALMS_HOME

        # 拷贝配置文件到jboss目录
        /bin/cp -r -f config/jboss/sh/* $PORTALMS_HOME/jboss5/bin/ >> $INSTALL_LOG 2>&1;
        /bin/cp -r -f config/portalMS  $PORTALMS_HOME/jboss5/bin/ >> $INSTALL_LOG 2>&1;
        /bin/cp -r -f config/monitor $PORTALMS_HOME/jboss5/bin/ >> $INSTALL_LOG 2>&1;
        /bin/cp -r -f war/portalMS.war $PORTALMS_HOME/jboss5/server/default/deploy/ >> $INSTALL_LOG 2>&1;
        /bin/cp -r -f config/jboss/xml/bindings-jboss-beans.xml $PORTALMS_HOME/jboss5/server/default/conf/bindingservice.beans/META-INF/ >> $INSTALL_LOG 2>&1;
        /bin/cp -r -f config/jboss/xml/server.xml $PORTALMS_HOME/jboss5/server/default/deploy/jbossweb.sar/ >> $INSTALL_LOG 2>&1;
        /bin/cp -r -f config/jboss/xml/ejb3-connectors-jboss-beans.xml $PORTALMS_HOME/jboss5/server/default/deploy/ >> $INSTALL_LOG 2>&1;
       
        # 拷贝结束
        dos2unix $PORTALMS_HOME/jboss5/bin/*.sh >> $INSTALL_LOG 2>&1;
        
        #修改必要配置
        config;
        
        #注册命令
        registerCmd;
        
        #增加重启任务
        autoRestart;
        
        #如果传入的参数为启动服务,则调用启动服务脚本
        if [ "$ISSTART" == "-s" ]; then
                # 启动服务
                echo "-----------`date` start to startup portalMS server--------------" >> $INSTALL_LOG 2>&1;
                echo -e "\033[32;49;1m [-----------start to startup portalMS server-------] \033[39;49;0m"
                
                cd $PORTALMS_HOME/jboss5/bin/
                nohup $PORTALMS_HOME/jboss5/bin/restart_remote.sh >> $INSTALL_LOG 2>&1;
                
                #检查服务是否启动
                portNum=`netstat -an | grep $PORTALMSPORT | awk '{print $4}' | awk -F ':' '{print $2}' | grep ^${PORTALMSPORT} | wc -l`
                while ( [ $portNum -eq 0 ] )
                do
                    sleep 10;
                    count=`expr $count + 1`;
                    if [ "$count" == "40" ]; then
                        echo "`date` start portalMS server failed, start failed..." >> $INSTALL_LOG 2>&1;
                        echo -e "\033[31;49;1m [----------start portalMS server failed, start failed...--------] \033[39;49;0m"
                        exit 1;
                    fi;
                    portNum=`netstat -an | grep $PORTALMSPORT | awk '{print $4}' | awk -F ':' '{print $2}' | grep ^${PORTALMSPORT} | wc -l`
                    echo "portalMS server is starting......." >> $INSTALL_LOG 2>&1;
                done
                echo "-----------`date` end to startup portalMS server--------------" >> $INSTALL_LOG 2>&1;
                echo -e "\033[32;49;1m [-----------end to startup portalMS server---------] \033[39;49;0m"
            fi;    
        echo "-----------install software end--------------" >> $INSTALL_LOG 2>&1;
        echo -e "\033[32;49;1m [-----------install software finished---------] \033[39;49;0m"
    fi;
}

################################################
####注册命令,包含restart_portalMS status_portalMS#######
################################################
registerCmd()
{
    #注册restart_portalMS命令
    echo "cd $PORTALMS_HOME/jboss5/bin" > /bin/restart_portalMS
    echo "sh $PORTALMS_HOME/jboss5/bin/restart_remote.sh" >> /bin/restart_portalMS
    chmod 755 /bin/restart_portalMS
    
    #注册查看状态命令status_portalMS
    echo "cd $PORTALMS_HOME/jboss5/bin" > /bin/status_portalMS
    echo "sh $PORTALMS_HOME/jboss5/bin/status.sh $VERSION" >> /bin/status_portalMS
    chmod 755 /bin/status_portalMS
    
    #注册start_portalMS命令
    sed -i "s#\${PORTALMS_HOME}#${PORTALMS_HOME}#" $PORTALMS_HOME/jboss5/bin/start.sh
    echo "cd $PORTALMS_HOME/jboss5/bin" > /bin/start_portalMS
    echo "sh $PORTALMS_HOME/jboss5/bin/start.sh" >> /bin/start_portalMS
    chmod 755 /bin/start_portalMS
    
    #注册stop_portalMS命令
    echo "cd $PORTALMS_HOME/jboss5/bin" > /bin/stop_portalMS
    echo "sh $PORTALMS_HOME/jboss5/bin/stop.sh" >> /bin/stop_portalMS
    chmod 755 /bin/stop_portalMS
    
}

#############################################################################
####增加定时任务,在服务异常停止后自动拉起服务                          #######
#############################################################################
autoRestart()
{
    #判断定时任务中是否已经存在自动拉起服务
    cronStatus=`grep -q $deamonPath $crontabPath && echo "true"  || echo "false"`;
    if [ "$cronStatus" == "false" ]; then
        echo "*/1 * * * * root . /root/.bashrc;. ~/.bash_profile;. /etc/profile;/bin/sh /usr/local/portalMS/jboss5/bin/demon.sh >/dev/null 2>&1 &" >> $crontabPath    
    fi;

}

################################################
####修改必要配置################################
################################################
config()
{
      echo -e "\033[32;49;1m [----------------------start config-----------] \033[39;49;0m"

    exitFlag='N';

    if [ "${IsInputParam}d" != "d" -a "${IsInputParam}" = "-f" ]; then
        systemEdition=`grep "systemEdition" $InputParamFile | awk -F '=' '{print $2}'`
    systemDeployType=`grep "systemDeployType" $InputParamFile | awk -F '=' '{print $2}'`
        rankFlag=`grep "rankFlag" $InputParamFile | awk -F '=' '{print $2}'`
    systemLevelType=`grep "systemLevelType" $InputParamFile | awk -F '=' '{print $2}'`
    localCity=`grep "localCity" $InputParamFile | awk -F '=' '{print $2}'`
    childCitys=`grep "childCitys" $InputParamFile | awk -F '=' '{print $2}'`
        dbType=`grep "dbType" $InputParamFile | awk -F '=' '{print $2}'`
        dbUrl=`grep "dbUrl" $InputParamFile | awk -F 'dbUrl=' '{print $2}'`
        dbUserName=`grep "dbUserName" $InputParamFile | awk -F '=' '{print $2}'`
        dbPassword=`grep "dbPassword" $InputParamFile | awk -F '=' '{print $2}'`
        portalUrl=`grep "portalUrl" $InputParamFile | awk -F '=' '{print $2}'`
        IAGUrl=`grep "IAGUrl" $InputParamFile | awk -F '=' '{print $2}'`
        sdpAdapterUrl=`grep "sdpAdapterUrl" $InputParamFile | awk -F '=' '{print $2}'`
        ottUrl=`grep "ottUrl" $InputParamFile | awk -F '=' '{print $2}'`
        amsUrl=`grep "amsUrl" $InputParamFile | awk -F '=' '{print $2}'`
        grmUrl=`grep "grmUrl" $InputParamFile | awk -F '=' '{print $2}'`
        localLanguage=`grep "localLanguage" $InputParamFile | awk -F '=' '{print $2}'`
        
        echo -e
                echo -e "\033[33;49;1m systemEdition:\"${systemEdition}\"\n\033[39;49;0m"
        echo -e "\033[33;49;1m Database type is :\"${dbType}\"\n\033[39;49;0m"
        echo -e "\033[33;49;1m Database url  is :\"${dbUrl}\"\n\033[39;49;0m"
        echo -e "\033[33;49;1m Database userName is :\"${dbUserName}\"\n \033[39;49;0m"
        echo -e "\033[33;49;1m Database password is :\"${dbPassword}\"\n \033[39;49;0m"
        echo -e "\033[33;49;1m localLanguage is :\"${localLanguage}\"\n \033[39;49;0m"
        
############################################################        
        if [ "${localLanguage}d" != "d" ];then
                    
            if [ "$localLanguage" == "zh_CN" ]; then
                                localeShort="CHINA"
                                uifLanguage="zh"
            elif [ "$localLanguage" == "zh_TW" ]; then
                                localeShort="TAIWAN"    
                                uifLanguage="zhTW"
            elif [ "$localLanguage" == "en_US" ]; then
                                localeShort="US"
                                uifLanguage="en"
            else
                                localeShort="CHINA"
                                localLanguage="zh_CN"
                                uifLanguage="zh"
            fi;
                        
        else
                        localeShort="CHINA"
                        localLanguage="zh_CN"
                        uifLanguage="zh"
        fi;    
        
        if [ "${systemEdition}" == "nanjing-no-classify" ];then
                echo -e "\033[33;49;1m portalUrl is :\"${portalUrl}\"\n\033[39;49;0m"
            echo -e "\033[33;49;1m amsUrl is :\"${amsUrl}\"\n\033[39;49;0m"
                fi;
        if [ "${systemEdition}" == "nanjing-classify" ];then
            echo -e "\033[33;49;1m IAGUrl is :\"${IAGUrl}\"\n\033[39;49;0m"
            echo -e "\033[33;49;1m amsUrl is :\"${amsUrl}\"\n\033[39;49;0m"
        fi;
        if [ "${systemEdition}" == "tianwei" ];then
            echo -e "\033[33;49;1m portalUrl is :\"${portalUrl}\"\n\033[39;49;0m"
            echo -e "\033[33;49;1m sdpAdapterUrl is :\"${sdpAdapterUrl}\"\n\033[39;49;0m"
                echo -e "\033[33;49;1m ottUrl is :\"${ottUrl}\"\n\033[39;49;0m"
            echo -e "\033[33;49;1m IAGUrl is :\"${IAGUrl}\"\n\033[39;49;0m"
            echo -e "\033[33;49;1m grmUrl is :\"${grmUrl}\"\n\033[39;49;0m"
        fi;
        if [ "${systemEdition}" == "guangdong" ];then
                echo -e "\033[33;49;1m systemDeployType:\"${systemDeployType}\"\n\033[39;49;0m"            
            if [ "${systemDeployType}" == "NGB" ];then
                 echo -e "\033[33;49;1m rankFlag is :\"${rankFlag}\"\n\033[39;49;0m"
                 echo -e "\033[33;49;1m systemLevelType is :\"${systemLevelType}\"\n\033[39;49;0m"
                 if [ "${systemLevelType}" == "C" ];then
                     echo -e "\033[33;49;1m localCity is :\"${localCity}\"\n\033[39;49;0m"
                     fi;
                 if [ "${rankFlag}" == "true" ];then
                 if [ "${systemLevelType}" == "P" ];then
                         echo -e "\033[33;49;1m childCitys is :\"${childCitys}\"\n\033[39;49;0m"
                         fi;
                 echo -e "\033[33;49;1m IAGUrl is :\"${IAGUrl}\"\n\033[39;49;0m"
                     fi;
                fi;
            echo -e "\033[33;49;1m portalUrl is :\"${portalUrl}\"\n\033[39;49;0m"    
            echo -e "\033[33;49;1m ottUrl is :\"${ottUrl}\"\n\033[39;49;0m"    
            echo -e "\033[33;49;1m amsUrl is :\"${amsUrl}\"\n\033[39;49;0m"    
            echo -e "\033[33;49;1m grmUrl is :\"${grmUrl}\"\n\033[39;49;0m"

        fi;
        
   
    #输入参数    
    else
        while ( [ ${exitFlag} != 'Y' ] )
                do
                
                    #读取输入值    
                    
                    #设置系统标志
                    echo -e "\033[33;49;1mPlease enter systemEdition(example:\"tianwei OR nanjing-classify OR nanjing-no-classify OR guangdong\"):\033[39;49;0m"    
                       read -p "" inputSystemEdition    
                       hasSystemEdition="false"
                        while ( [ ! "${hasSystemEdition}" == "true" ] )
                        do
                            
                          if [ "${inputSystemEdition}d" != "d" ];then
                            systemEdition=$inputSystemEdition;
                        UifConfigFilePath=${PORTALMS_HOME}/jboss5/bin/portalMS/conf/uif-config_${systemEdition}.xml;                             
                            hasSystemEdition="true"
                        else
                            echo -e "\033[31;49;1msystemEdition must be set.\033[39;49;0m"
                            read -p "Please enter systemEdition:" inputSystemEdition    
                           fi;
                       done
                    
                      if [ "${systemEdition}" == "guangdong" ];then
                      #设置系统的部署方式
                     echo -e "\033[33;49;1mPlease enter systemDeployType(example:\"NGB OR SDP\"):\033[39;49;0m"
                     read -p "" inputSystemDeployType
                     hasSystemDeployType="false"
                     while ( [ ! "${hasSystemDeployType}" == "true" ] )
                        do
                            
                       if [ "${inputSystemDeployType}d" != "d" ];then
                            systemDeployType=$inputSystemDeployType;
                            hasSystemDeployType="true"
                         else
                            echo -e "\033[31;49;1msystemDeployType must be set.\033[39;49;0m"    
                            read -p "Please enter systemDeployType:" inputSystemDeployType
                           fi;
                       done
                    
                    if [ "${systemDeployType}" == "NGB" ];then
                        #设置是否支持分级
                        echo -e "\033[33;49;1mPlease enter rankFlag(0:false 1:true default is 0):\033[39;49;0m"
                        read -p "" inputRankFlag
                        if [ "${inputRankFlag}d" != "d" ];then
                        if [ "$inputRankFlag" == "1" ]; then
                                rankFlag=true
                        else
                                rankFlag=false    
                        fi;    
                        
                        else
                        rankFlag=false    
                        fi;    
                        #设置是主系统还是分系统
                        echo -e "\033[33;49;1mPlease enter systemLevelType(0:P 1:C default is 0):\033[39;49;0m"
                        read -p "" inputSystemLevelType
                        if [ "${inputSystemLevelType}d" != "d" ];then
                        if [ "$inputSystemLevelType" == "1" ]; then
                                systemLevelType=C
                        else
                                systemLevelType=P    
                        fi;    
                        
                        else
                        systemLevelType=P    
                        fi;    
                        if [ "$systemLevelType" == "C" ];then    
                        echo -e "\033[33;49;1mPlease enter localCity(localCity is local cityCode):\033[39;49;0m"
                        read -p "" inputLocalCity
                            hasLocalCity="false"
                                                while ( [ ! "${hasLocalCity}" == "true" ] )
                            do                            
                              if [ "${inputLocalCity}d" != "d" ];then
                                   localCity=$inputLocalCity;
                                   hasLocalCity="true"
                               else
                                   echo -e "\033[31;49;1mlocalCity must be set.\033[39;49;0m"    
                                   read -p "Please enter localCity:" inputLocalCity
                              fi;
                           done
                                    fi;

                         if [ "$rankFlag" == "true" ];then    
                                                 if [ "$systemLevelType" == "P" ];then    
                           echo -e "\033[33;49;1mPlease enter childCitys(if to much use the "," separate):\033[39;49;0m"
                           read -p "" inputChildCitys
                               hasChildCitys="false"
                                                   while ( [ ! "${hasChildCitys}" == "true" ] )
                               do                            
                                 if [ "${inputChildCitys}d" != "d" ];then
                                      childCitys=$inputChildCitys;
                                      hasChildCitys="true"
                                   else
                                     echo -e "\033[31;49;1mchildCitys must be set.\033[39;49;0m"    
                                     read -p "Please enter childCitys:" inputChildCitys
                                  fi;
                               done
                           fi;
                                    fi;

                             fi;

                          fi;
                        
                    echo -e "\033[33;49;1mPlease enter database type(1:oracle 2:mysql default is 2):\033[39;49;0m"
                    read -p "" inputDbType
                    if [ "${inputDbType}d" != "d" ];then
                        if [ "$inputDbType" == "1" ]; then
                                dbType=oracle
                        else
                                dbType=mysql    
                        fi;    
                        
                    else
                        dbType=mysql    
                    fi;
                        
                    if [ "$dbType" == "oracle" ]; then
                        echo -e "\033[33;49;1mPlease enter oracle url(example:\"jdbc:oracle:thin:@172.20.100.25:1521:orcl\"):\033[39;49;0m"        
                    else
                        echo -e "\033[33;49;1mPlease enter mysql url(example:\"jdbc:mysql://10.10.91.121:3306/sdpportalMS\"):\033[39;49;0m"            
                    fi;
                    
                    #设置数据库url
                    hasRightUrl="false"
                    read -p "" inputDbUrl
                        while ( [ ! "${hasRightUrl}" == "true" ] )
                        do
                            
                        if [ "${inputDbUrl}d" != "d" ];then
                            dbUrl=$inputDbUrl;
                            hasRightUrl="true"
                        else
                            echo -e "\033[31;49;1mDataBase url must be set.\033[39;49;0m"  
                            read -p "Please enter oracle url:" inputDbUrl  
                        fi;
                    done
                       
                       #username
                       echo -e "\033[33;49;1mPlease enter username:\033[39;49;0m"    
                       read -p "" inputDbUserName    
                       hasRightUserName="false"
                        while ( [ ! "${hasRightUserName}" == "true" ] )
                        do
                            
                          if [ "${inputDbUserName}d" != "d" ];then
                            dbUserName=$inputDbUserName;
                            hasRightUserName="true"
                        else
                            echo -e "\033[31;49;1mDataBase username must be set.\033[39;49;0m"
                            read -p "Please enter username:" inputDbUserName    
                           fi;
                       done
                    
                    #password
                    echo -e "\033[33;49;1mPlease enter password:\033[39;49;0m"
                    read -p "" inputDbPassword    
                    hasRightPassword="false"
                        while ( [ ! "${hasRightPassword}" == "true" ] )
                        do
                            
                          if [ "${inputDbPassword}d" != "d" ];then
                            dbPassword=$inputDbPassword;
                            hasRightPassword="true"
                        else
                            echo -e "\033[31;49;1mDataBase password must be set.\033[39;49;0m"    
                            read -p "Please enter password:" inputDbPassword
                           fi;
                       done
                    
                       
        
                    
                    if [ "${systemEdition}" == "nanjing-no-classify" ];then
                        #设置portal连接地址
                            echo -e "\033[33;49;1mPlease enter portalUrl(example:\"http://172.20.26.22:48280/portalAgent/services/receiveMsg\"):\033[39;49;0m"
                        read -p "" inputPortalUrl
                        hasPortalUrl="false"
                        while ( [ ! "${hasPortalUrl}" == "true" ] )
                        do
                            
                          if [ "${inputPortalUrl}d" != "d" ];then
                            portalUrl=$inputPortalUrl;
                            hasPortalUrl="true"
                        else
                            echo -e "\033[31;49;1mportalUrl must be set.\033[39;49;0m"    
                            read -p "Please enter portalUrl:" inputPortalUrl
                           fi;
                       done

                     #设置ams连接地址
                      echo -e "\033[33;49;1mPlease enter amsUrl(example:\"http://172.21.11.202:8080/ams-server/services/receiveMsg\"):\033[39;49;0m"
                      read -p "" inputamsUrl
                      hasamsUrl="false"
                      while ( [ ! "${hasamsUrl}" == "true" ] )
                        do
                      if [ "${inputamsUrl}d" != "d" ];then
                              amsUrl=$inputamsUrl;
                          hasamsUrl="true"
                    else
                            echo -e "\033[31;49;1mamsUrl must be set.\033[39;49;0m"    
                            read -p "Please enter amsUrl:" inputamsUrl    
                          fi;
                    done
                        
                        fi;

                    if [ "${systemEdition}" == "nanjing-classify" ];then
                        #设置IAG连接地址
                        echo -e "\033[33;49;1mPlease enter IAGUrl(example:\"http://172.20.28.10:8280/services/PortalMSLevelService.PortalMSLevelServiceHttpEndpoint\"):\033[39;49;0m"
                        read -p "" inputIAGUrl
                        hasIAGUrl="false"
                        while ( [ ! "${hasIAGUrl}" == "true" ] )
                        do
                            
                          if [ "${inputIAGUrl}d" != "d" ];then
                            IAGUrl=$inputIAGUrl;
                            hasIAGUrl="true"
                        else
                            echo -e "\033[31;49;1mIAGUrl must be set.\033[39;49;0m"    
                            read -p "Please enter IAGUrl:" inputIAGUrl
                           fi;
                       done  

                     #设置ams连接地址
                      echo -e "\033[33;49;1mPlease enter amsUrl(example:\"http://172.21.11.202:8080/ams-server/services/receiveMsg\"):\033[39;49;0m"
                      read -p "" inputamsUrl
                      hasamsUrl="false"
                      while ( [ ! "${hasamsUrl}" == "true" ] )
                        do
                      if [ "${inputamsUrl}d" != "d" ];then
                              amsUrl=$inputamsUrl;
                          hasamsUrl="true"
                    else
                            echo -e "\033[31;49;1mamsUrl must be set.\033[39;49;0m"    
                            read -p "Please enter amsUrl:" inputamsUrl    
                          fi;
                    done
                    
                        
                        fi;
                        
                    if [ "${systemEdition}" == "tianwei" ];then
                           #设置portal连接地址
                            echo -e "\033[33;49;1mPlease enter portalUrl(example:\"http://172.20.26.22:48280/portalAgent/services/receiveMsg\"):\033[39;49;0m"
                        read -p "" inputPortalUrl
                        hasPortalUrl="false"
                        while ( [ ! "${hasPortalUrl}" == "true" ] )
                        do
                            
                          if [ "${inputPortalUrl}d" != "d" ];then
                            portalUrl=$inputPortalUrl;
                            hasPortalUrl="true"
                        else
                            echo -e "\033[31;49;1mportalUrl must be set.\033[39;49;0m"    
                            read -p "Please enter portalUrl:" inputPortalUrl
                           fi;
                       done

                          #设置sdpAdapter连接地址
                      echo -e "\033[33;49;1mPlease enter sdpAdapterUrl(example:\"http://172.21.11.153:9898/sdpAdapter/services/dataSyncService\"):\033[39;49;0m"
                      read -p "" inputSdpAdapterUrl
                                          hasSdpAdapterUrl="false"
                      while ( [ ! "${hasSdpAdapterUrl}" == "true" ] )
                        do
                      if [ "${inputSdpAdapterUrl}d" != "d" ];then
                              sdpAdapterUrl=$inputSdpAdapterUrl;
                          hasSdpAdapterUrl="true"
                    else
                            echo -e "\033[31;49;1msdpAdapterUrl must be set.\033[39;49;0m"    
                            read -p "Please enter sdpAdapterUrl:" inputSdpAdapterUrl    
                          fi;
                    done
                    
                    
                          #设置ott连接地址
                      echo -e "\033[33;49;1mPlease enter ottUrl(example:\"http://172.21.11.202:8080/ott-server/services/receiveMsg\"):\033[39;49;0m"
                      read -p "" inputOTTUrl
                      hasOTTUrl="false"
                      while ( [ ! "${hasOTTUrl}" == "true" ] )
                        do
                      if [ "${inputOTTUrl}d" != "d" ];then
                              ottUrl=$inputOTTUrl;
                          hasOTTUrl="true"
                    else
                            echo -e "\033[31;49;1mottUrl must be set.\033[39;49;0m"    
                            read -p "Please enter ottUrl:" inputOTTUrl    
                          fi;
                    done

                     #设置IAG连接地址
                        echo -e "\033[33;49;1mPlease enter IAGUrl(example:\"http://172.20.28.10:8280/services/PortalMSLevelService.PortalMSLevelServiceHttpEndpoint\"):\033[39;49;0m"
                        read -p "" inputIAGUrl
                        hasIAGUrl="false"
                        while ( [ ! "${hasIAGUrl}" == "true" ] )
                        do
                            
                          if [ "${inputIAGUrl}d" != "d" ];then
                            IAGUrl=$inputIAGUrl;
                            hasIAGUrl="true"
                        else
                            echo -e "\033[31;49;1mIAGUrl must be set.\033[39;49;0m"    
                            read -p "Please enter IAGUrl:" inputIAGUrl
                           fi;
                       done
                    
                                          echo -e "\033[33;49;1mPlease enter grmUrl(example:\"http://172.21.13.151:8080/GRM/syncAreaIp\"):\033[39;49;0m"
                      read -p "" inputGRMUrl
                      hasGRMUrl="false"
                      while ( [ ! "${hasGRMUrl}" == "true" ] )
                        do
                      if [ "${inputGRMUrl}d" != "d" ];then
                              grmUrl=$inputGRMUrl;
                          hasGRMUrl="true"
                    else
                            echo -e "\033[31;49;1mgrmUrl must be set.\033[39;49;0m"    
                            read -p "Please enter grmUrl:" inputGRMUrl    
                          fi;
                    done
                    
                    fi;

                    if [ "${systemEdition}" == "guangdong" ];then
                        #设置portal连接地址
                            echo -e "\033[33;49;1mPlease enter portalUrl(example:\"http://172.20.26.22:48280/portalAgent/services/receiveMsg\"):\033[39;49;0m"
                        read -p "" inputPortalUrl
                        hasPortalUrl="false"
                        while ( [ ! "${hasPortalUrl}" == "true" ] )
                        do
                            
                          if [ "${inputPortalUrl}d" != "d" ];then
                            portalUrl=$inputPortalUrl;
                            hasPortalUrl="true"
                        else
                            echo -e "\033[31;49;1mportalUrl must be set.\033[39;49;0m"    
                            read -p "Please enter portalUrl:" inputPortalUrl
                           fi;
                       done

                      #设置ott连接地址
                      echo -e "\033[33;49;1mPlease enter ottUrl(example:\"http://172.21.11.202:8080/ott-server/services/receiveMsg\"):\033[39;49;0m"
                      read -p "" inputOTTUrl
                      hasOTTUrl="false"
                      while ( [ ! "${hasOTTUrl}" == "true" ] )
                        do
                      if [ "${inputOTTUrl}d" != "d" ];then
                              ottUrl=$inputOTTUrl;
                          hasOTTUrl="true"
                    else
                            echo -e "\033[31;49;1mottUrl must be set.\033[39;49;0m"    
                            read -p "Please enter ottUrl:" inputOTTUrl    
                          fi;
                    done

                     #设置ams连接地址
                      echo -e "\033[33;49;1mPlease enter amsUrl(example:\"http://172.21.11.202:8080/ams-server/services/receiveMsg\"):\033[39;49;0m"
                      read -p "" inputamsUrl
                      hasamsUrl="false"
                      while ( [ ! "${hasamsUrl}" == "true" ] )
                        do
                      if [ "${inputamsUrl}d" != "d" ];then
                              amsUrl=$inputamsUrl;
                          hasamsUrl="true"
                    else
                            echo -e "\033[31;49;1mamsUrl must be set.\033[39;49;0m"    
                            read -p "Please enter amsUrl:" inputamsUrl    
                          fi;
                    done

                     #设置grm连接地址
                      echo -e "\033[33;49;1mPlease enter grmUrl(example:\"http://172.21.13.151:8080/GRM/syncAreaIp\"):\033[39;49;0m"
                      read -p "" inputGRMUrl
                      hasGRMUrl="false"
                      while ( [ ! "${hasGRMUrl}" == "true" ] )
                        do
                      if [ "${inputGRMUrl}d" != "d" ];then
                              grmUrl=$inputGRMUrl;
                          hasGRMUrl="true"
                    else
                            echo -e "\033[31;49;1mgrmUrl must be set.\033[39;49;0m"    
                            read -p "Please enter grmUrl:" inputGRMUrl    
                          fi;
                    done
     
                    if [ "${systemDeployType}" == "NGB" ];then
                        if [ "${rankFlag}" == "true" ];then
                           #设置IAG连接地址
                           echo -e "\033[33;49;1mPlease enter IAGUrl(example:\"http://172.20.28.10:8280/services/PortalMSLevelService.PortalMSLevelServiceHttpEndpoint\"):\033[39;49;0m"
                           read -p "" inputIAGUrl
                           hasIAGUrl="false"
                           while ( [ ! "${hasIAGUrl}" == "true" ] )
                           do
                            
                             if [ "${inputIAGUrl}d" != "d" ];then
                                  IAGUrl=$inputIAGUrl;
                                  hasIAGUrl="true"
                               else
                                 echo -e "\033[31;49;1mIAGUrl must be set.\033[39;49;0m"    
                                 read -p "Please enter IAGUrl:" inputIAGUrl
                              fi;
                            done  
                       fi;
                    fi;
                        
                        fi;

                        echo -e
                        echo -e "\033[33;49;1msystemEdition:\"${systemEdition}\"\n \033[39;49;0m"
                        if [ "${systemEdition}" == "guangdong" ];then
                           echo -e "\033[33;49;1msystemDeployType is :\"${systemDeployType}\"\n \033[39;49;0m"
                           if [ "${systemDeployType}" == "NGB" ];then
                               echo -e "\033[33;49;1mrankFlag is :\"${rankFlag}\"\n \033[39;49;0m"
                           echo -e "\033[33;49;1msystemLevelType is :\"${systemLevelType}\"\n \033[39;49;0m"
                           if [ "${rankFlag}" == "true" ];then
                                       if [ "${systemLevelType}" == "P" ];then
                                                 echo -e "\033[33;49;1mchildCitys is :\"${childCitys}\"\n \033[39;49;0m"
                                               fi;
                                           fi;
                           if [ "${systemLevelType}" == "C" ];then
                              echo -e "\033[33;49;1mlocalCity is :\"${localCity}\"\n \033[39;49;0m"
                           fi;
                                               fi;
                                        fi;
                    echo -e "\033[33;49;1mDatabase type is :\"${dbType}\"\n \033[39;49;0m"
                    echo -e "\033[33;49;1mDatabase url  is :\"${dbUrl}\"\n \033[39;49;0m"
                    echo -e "\033[33;49;1mDatabase userName is :\"${dbUserName}\"\n \033[39;49;0m"
                    echo -e "\033[33;49;1mDatabase password is :\"${dbPassword}\"\n \033[39;49;0m"

                    if [ "${systemEdition}" == "nanjing-no-classify" ];then
                            echo -e "\033[33;49;1mportalUrl is :\"${portalUrl}\"\n \033[39;49;0m"
                        echo -e "\033[33;49;1mamsUrl is :\"${amsUrl}\"\n\033[39;49;0m"
                      
                                        fi;
                    if [ "${systemEdition}" == "nanjing-classify" ];then
                        echo -e "\033[33;49;1mIAGUrl is :\"${IAGUrl}\"\n \033[39;49;0m"
                        echo -e "\033[33;49;1mamsUrl is :\"${amsUrl}\"\n\033[39;49;0m"
                             
                    fi;
                    if [ "${systemEdition}" == "tianwei" ];then
                            echo -e "\033[33;49;1mportalUrl is :\"${portalUrl}\"\n \033[39;49;0m"
                        echo -e "\033[33;49;1msdpAdapterUrl is :\"${sdpAdapterUrl}\"\n \033[39;49;0m"
                        echo -e "\033[33;49;1mottUrl is :\"${ottUrl}\"\n \033[39;49;0m"
                        echo -e "\033[33;49;1mIAGUrl is :\"${IAGUrl}\"\n \033[39;49;0m"
                                    echo -e "\033[33;49;1mgrmUrl is :\"${grmUrl}\"\n\033[39;49;0m"
                    fi;
                    if [ "${systemEdition}" == "guangdong" ];then
                        if [ "${systemDeployType}" == "NGB" ];then
                           if [ "${rankFlag}" == "true" ];then
                                      echo -e "\033[33;49;1mIAGUrl is :\"${IAGUrl}\"\n \033[39;49;0m"
                                           fi;
                                               fi;
                            echo -e "\033[33;49;1mportalUrl is :\"${portalUrl}\"\n \033[39;49;0m"
                        echo -e "\033[33;49;1mottUrl is :\"${ottUrl}\"\n \033[39;49;0m"
                        echo -e "\033[33;49;1mamsUrl is :\"${amsUrl}\"\n \033[39;49;0m"
                        echo -e "\033[33;49;1mgrmUrl is :\"${grmUrl}\"\n\033[39;49;0m"
                    fi;
                    echo -e "\033[33;49;1mPlease enter localLanguage type(1:zh_CN 2:zh_TW 3:en_US default is 1):\033[39;49;0m"
                    read -p "" localLanguage
                    if [ "${localLanguage}d" != "d" ];then
                    
                        if [ "$localLanguage" == "1" ]; then
                                localeShort="CHINA"
                                localLanguage="zh_CN"
                                uifLanguage="zh"
        
                        elif [ "$localLanguage" == "2" ]; then
                                localeShort="TAIWAN"
                                                                localLanguage="zh_TW"
                                uifLanguage="zhTW"
                        elif [ "$localLanguage" == "3" ]; then
                                localeShort="US"
                                                                localLanguage="en_US"
                                uifLanguage="en"
                        else
                                localeShort="CHINA"
                                localLanguage="zh_CN"
                                uifLanguage="zh"
                        fi;
                        
                    else
                        localeShort="CHINA"
                        localLanguage="zh_CN"
                        uifLanguage="zh"
                    fi;    
                    
                    echo -e "\033[33;49;1mlocalLanguage is :\"${localLanguage}\"\n\033[39;49;0m"
                    echo -e "\033[33;49;1mPress Y/N to confirm the Params(default is Y):\033[39;49;0m"
                    read -p "" inputExitFlag
                    if [ "${inputExitFlag}d" != "d" ];then
                          if [ "${inputExitFlag}" == "Y" -o "${inputExitFlag}" == "y" ]; then
                              exitFlag='Y'
                          else
                              exitFlag='N'
                          fi;    
                        
                    else
                        exitFlag='Y'
                    fi;        
                done;     
    fi;    
    
    
    # 不输入的url取默认值
                if [ "${portalUrl}d" == "d" ];then
            portalUrl=${defaultUrl};
        fi;
        if [ "${IAGUrl}d" == "d" ];then
            IAGUrl=${defaultUrl};
        fi;
        if [ "${sdpAdapterUrl}d" == "d" ];then
            sdpAdapterUrl=${defaultUrl};
        fi;
        if [ "${ottUrl}d" == "d" ];then
            ottUrl=${defaultUrl};
        fi;
        if [ "${amsUrl}d" == "d" ];then
            amsUrl=${defaultUrl};
        fi;
        if [ "${grmUrl}d" == "d" ];then
            grmUrl=${defaultUrl};
        fi;
        # 先清空参数文件的数据,然后在将最新的参数值写入到参数文件中
        if [ ! -e $PARAM_PATH ]; then
           mkdir -p $PARAM_PATH
        fi;    
        echo "systemEdition="$systemEdition > ${PARAM_PATH}${PARAM_FILE}
        echo "systemDeployType="$systemDeployType >> ${PARAM_PATH}${PARAM_FILE}
        echo "rankFlag="$rankFlag >> ${PARAM_PATH}${PARAM_FILE}
        echo "systemLevelType="$systemLevelType >> ${PARAM_PATH}${PARAM_FILE}
        echo "localCity="$localCity >> ${PARAM_PATH}${PARAM_FILE}
        echo "childCitys="$childCitys >> ${PARAM_PATH}${PARAM_FILE}
        echo "dbType="$dbType >> ${PARAM_PATH}${PARAM_FILE}
        echo "dbUrl="$dbUrl >> ${PARAM_PATH}${PARAM_FILE}
        echo "dbUserName="$dbUserName >> ${PARAM_PATH}${PARAM_FILE}
        echo "dbPassword="$dbPassword >> ${PARAM_PATH}${PARAM_FILE}
        echo "IAGUrl="$IAGUrl >> ${PARAM_PATH}${PARAM_FILE}
        echo "portalUrl="$portalUrl >> ${PARAM_PATH}${PARAM_FILE}
        echo "sdpAdapterUrl="$sdpAdapterUrl >> ${PARAM_PATH}${PARAM_FILE}
        echo "ottUrl="$ottUrl >> ${PARAM_PATH}${PARAM_FILE}
        echo "amsUrl="$amsUrl >> ${PARAM_PATH}${PARAM_FILE}
                echo "grmUrl="$grmUrl >> ${PARAM_PATH}${PARAM_FILE}
                echo "localLanguage="$localLanguage >> ${PARAM_PATH}${PARAM_FILE}
        
        #替换配置文件里面的值
        
        #1、获取需要替换的字符串信息
        
        sed -i "s#\${systemEdition}#${systemEdition}#" ${SysConfigFilePath}
        sed -i "s#\${systemEdition}#${systemEdition}#" ${webXmlFilePath}
        sed -i "s#\${systemEdition}#${systemEdition}#" ${quartzFilePath}

        if [ "${UifConfigFilePath}d" == "d" ];then
        
            UifConfigFilePath=${PORTALMS_HOME}/jboss5/bin/portalMS/conf/uif-config_${systemEdition}.xml;
        fi;
        
        sed -i "s#\${IAGUrl}#${IAGUrl}#" ${UifConfigFilePath}
        sed -i "s#\${portalUrl}#${portalUrl}#" ${UifConfigFilePath}
        sed -i "s#\${sdpAdapterUrl}#${sdpAdapterUrl}#" ${UifConfigFilePath}
        sed -i "s#\${ottUrl}#${ottUrl}#" ${UifConfigFilePath}
        sed -i "s#\${amsUrl}#${amsUrl}#" ${UifConfigFilePath}
        sed -i "s#\${grmUrl}#${grmUrl}#" ${UifConfigFilePath}
        
        #2、填好appContextService.xml中的数据库spring配置文件
        dbSpringFile=${databaseResPath}${datasourceType}
        if [ "$dbType" == "oracle" ]; then
            dbDriverclass=${oracleDriver}
            dialect=${oracleDialect}
        else   
            dbDriverclass=${mysqlDriver}
            dialect=${mysqlDialect}
        fi;
        
        sed -i "s#\${dbType}#${dbType}#" ${applicatonDataSource}
        sed -i "s#\${dialect}#${dialect}#" ${applicatonDataSource}
        sed -i "s#\${dbDriverclass}#${dbDriverclass}#" ${dbSpringFile}     
        sed -i "s#\${dbUrl}#${dbUrl}#" ${dbSpringFile}
        sed -i "s#\${dbUserName}#${dbUserName}#" ${dbSpringFile}
        sed -i "s#\${dbPassword}#${dbPassword}#" ${dbSpringFile}
        sed -i "s#\${dbType}#${dbType}#" ${dbSpringFile}

                sed -i "s#\${systemDeployType}#${systemDeployType}#" ${systemDeployConfigFilePath}
        sed -i "s#\${rankFlag}#${rankFlag}#" ${systemDeployConfigFilePath}
        sed -i "s#\${systemLevelType}#${systemLevelType}#" ${systemDeployConfigFilePath}
        sed -i "s#\${localCity}#${localCity}#" ${systemDeployConfigFilePath}
        sed -i "s#\${childCitys}#${childCitys}#" ${systemDeployConfigFilePath}
        
        sed -i "s#\${localLanguage}#${localLanguage}#" ${SysConfigFilePath}
        sed -i "s#\${localLanguage}#${localLanguage}#" ${strutsFilePath}
        sed -i "s#\${localeShort}#${localeShort}#" ${webXmlFilePath}
        sed -i "s#\${uifLanguage}#${uifLanguage}#" ${uifSyncXmlFilePath}
        
        echo -e "\033[32;49;1m [------------------------end config-----------] \033[39;49;0m"
}
paramNum=$#
if [ "$paramNum" != "1" -a "$paramNum" != "3" -a "$paramNum" != "5" ];then
    echo "-s \"After install, startup server.\""
    echo "-n \"After install, not startup server.\""
    echo "-f \"Install from file, need filePath after this param\""
    echo "-u \"Install from ums, need after this filePath\""
    exit 1;    
fi;    
ISSTART=$1
if [ "$ISSTART" != "-s" -a "$ISSTART" != "-n" ]; then
    echo "First parameter must be -s or -n"
    exit 1;
fi;    

IsInputParam=$2
if [ "${IsInputParam}d" != "d" -a "$IsInputParam" != "-f" ]; then
    echo "Second parameter must be -f"
    exit 1;
fi;
InputParamFile=$3
if [ ! -e $InputParamFile ]; then
    echo "The param file doesn't existed."
    exit 1;
fi;    
InputHomeParam=$4
if [ "${InputHomeParam}d" != "d" -a "$InputHomeParam" != "-u" ]; then
    echo "Second parameter must be -u"
    exit 1;
fi;
InputHomePath=$5
if [ ! -e $InputHomePath ]; then
    echo "The param jbossPath doesn't existed."
    exit 1;
fi;    
if [ "${InputHomePath}" != "" ]; then
    PORTALMS_HOME=$5
    export PORTALMS_HOME
else
    PORTALMS_HOME="/usr/local/portalMS"
fi;
systemDeployPath=${PORTALMS_HOME}/jboss5/server/default/deploy/
SysConfigFilePath=${PORTALMS_HOME}/jboss5/bin/portalMS/conf/sysConfig.xml
systemDeployConfigFilePath=${PORTALMS_HOME}/jboss5/bin/portalMS/conf/systemDeployConfig.xml
uifSyncXmlFilePath=${PORTALMS_HOME}/jboss5/bin/portalMS/conf/uif/uif-sync-config.xml
webXmlFilePath=${PORTALMS_HOME}/jboss5/server/default/deploy/portalMS.war/WEB-INF/web.xml
quartzFilePath=${PORTALMS_HOME}/jboss5/server/default/deploy/portalMS.war/WEB-INF/classes/quartz.properties
applicatonDataSource=${PORTALMS_HOME}/jboss5/server/default/deploy/portalMS.war/WEB-INF/classes/spring/applicationcontext-datasource.xml
strutsFilePath=${PORTALMS_HOME}/jboss5/server/default/deploy/portalMS.war/WEB-INF/classes/struts/struts.xml
databaseResPath=${PORTALMS_HOME}/jboss5/bin/portalMS/conf/
if [ "${InputHomePath}" == "" ]; then
    checkEnv;
fi;
install;

exit 0;



tianwei_param.properties


systemEdition=tianwei
dbType=oracle
dbUrl=jdbc:oracle:thin:@172.20.100.25:1521:orcl
dbUserName=PORTALMS_B091
dbPassword=PORTALMS_B091
portalUrl=http://172.21.11.221:48280/portalAgent/services/receiveMsg
sdpAdapterUrl=http://172.21.11.202:9898/sdpAdapter/services/dataSyncService
ottUrl=http://172.20.37.20:8080/ott-server/services/receiveMsg
IAGUrl=http://172.20.28.10:8280/services/PortalMSLevelService.PortalMSLevelServiceHttpEndpoint
grmUrl=http://172.21.13.151:8080/GRM/syncAreaIp
FKOttAdapter=http://172.20.25.22:48280/FKOttAdapter/services/receiveMsg
localLanguage=zh_CN

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值