我的第一个脚本

原创
2015/08/04 11:16
阅读数 85

#!/bin/bash

set -x

FILE1=DyhWeb.war

FILE5=DyhWebService.war

FILE2=apacheactivemq.properties

FILE3=config.properties

FILE4=property.properties

DIR1=/usr/local/tomcat-8580/webapps/

DIR2=/usr/local/tomcat-8580/webapps/DyhWeb/WEB-INF/classes

DIR3=/usr/local/tomcat-8580/appBackup/

DATE=`date +%F%H%M`

         rm  -rf  ${DIR1%w*}${FILE1%.*} ${DIR1%w*}${FILE5%.*};mkdir -p ${DIR1%w*}${FILE1%.*} ${DIR1%w*}${FILE5%.*}

 

if [ -f $FILE1 ] && [ -f $FILE5 ];then

            unzip $FILE1 -d ${DIR1%w*}${FILE1%.*} > /dev/null

            unzip $FILE5 -d ${DIR5%w*}${FILE5%.*} > /dev/null

 

                mv ${DIR1}${FILE1%.*}  ${DIR3}${FILE1%.*}.$DATE  && mv ${DIR1%w*}${FILE1%.*} $DIR1

                        /bin/cp -f  ${DIR3}${FILE1%.*}.$DATE/WEB-INF/classes/$FILE2     $DIR2

                        /bin/cp -f  ${DIR3}${FILE1%.*}.$DATE/WEB-INF/classes/$FILE3     $DIR2

                        /bin/cp -f  ${DIR3}${FILE1%.*}.$DATE/WEB-INF/classes/$FILE4     $DIR2

 

                mv ${DIR1}${FILE5%.*}  ${DIR3}${FILE5%.*}.$DATE  && mv ${DIR1%w*}${FILE5%.*} $DIR1

                        /bin/cp -f  ${DIR3}${FILE5%.*}.$DATE/WEB-INF/$FILE2     $DIR2

                        /bin/cp -f  ${DIR3}${FILE5%.*}.$DATE/WEB-INF/$FILE3     $DIR2

                        /bin/cp -f  ${DIR3}${FILE5%.*}.$DATE/WEB-INF/classes/$FILE4     $DIR2

 

                                ${DIR1%w*}bin/catalina.sh stop && ps -ef | grep tomcat-8580 | grep -v "grep"

                                        echo $?

  if [ $? = 0 ];then

        ps -ef | grep tomcat-8580|grep -v "grep" |awk '{print $2}' | xargs -i kill -9 {}

        ${DIR1%w*}bin/catalina.sh start && tail -f ${DIR1%w*}logs/catalina.out

  else

       ${DIR1%w*}bin/catalina.sh start && tail -f ${DIR1%w*}logs/catalina.out

  fi

else

  echo "!!!!!!DyhWeb.warDyhWebService.war同时存在是不成立的!!!!!!"

fi

 

if [ -f $FILE1 ] && [ ! -f $FILE5 ];then

        unzip $FILE1 -d ${DIR1%w*}${FILE1%.*} > /dev/null

        mv ${DIR1}${FILE1%.*}  ${DIR3}${FILE1%.*}.$DATE  && mv ${DIR1%w*}${FILE1%.*} $DIR1

                          /bin/cp -f  ${DIR3}${FILE1%.*}.$DATE/WEB-INF/classes/$FILE2     $DIR2

                          /bin/cp -f  ${DIR3}${FILE1%.*}.$DATE/WEB-INF/classes/$FILE3     $DIR2

                          /bin/cp -f  ${DIR3}${FILE1%.*}.$DATE/WEB-INF/classes/$FILE4     $DIR2

 

         ${DIR1%w*}bin/catalina.sh stop && ps -ef | grep tomcat-8580 | grep -v "grep"

                                        echo $?

  if [ $? = 0 ];then

        ps -ef | grep tomcat-8580|grep -v "grep" |awk '{print $2}' | xargs -i kill -9 {}

        ${DIR1%w*}bin/catalina.sh start && tail -f ${DIR1%w*}logs/catalina.out

  else

        ${DIR1%w*}bin/catalina.sh start && tail -f ${DIR1%w*}logs/catalina.out

  fi

else

  echo "!!!!!!DyhWeb.war存在且DyhWebService.war不存在是不成立的!!!!!!"

fi

 

if [ ! -f $FILE1 ] && [ -f $FILE5 ];then

        unzip $FILE5 -d ${DIR5%w*}${FILE5%.*} > /dev/null

        mv ${DIR1}${FILE5%.*}  ${DIR3}${FILE5%.*}.$DATE  && mv ${DIR1%w*}${FILE5%.*} $DIR1

                        /bin/cp -f  ${DIR3}${FILE5%.*}.$DATE/WEB-INF/$FILE2     $DIR2

                        /bin/cp -f  ${DIR3}${FILE5%.*}.$DATE/WEB-INF/$FILE3     $DIR2

                        /bin/cp -f  ${DIR3}${FILE5%.*}.$DATE/WEB-INF/classes/$FILE4     $DIR2

                                ${DIR1%w*}bin/catalina.sh stop && ps -ef | grep tomcat-8580 | grep -v "grep"

                                        echo $?

  if [ $? = 0 ];then

        ps -ef | grep tomcat-8580|grep -v "grep" |awk '{print $2}' | xargs -i kill -9 {}

        ${DIR1%w*}bin/catalina.sh start && tail -f ${DIR1%w*}logs/catalina.out

  else

        ${DIR1%w*}bin/catalina.sh start && tail -f ${DIR1%w*}logs/catalina.out

  fi

else

  echo "!!!!!!DyhWeb.war不存在且DyhWebService.war存在是不成立的!!!!!!"

fi             


上面的版本后来发现有很多错误之处,如下:

(1)echo  $? ,然后验证$?是否为0,本身是想得到上次执行的输出结果,但是在下面判断时就会导致得到的输出结果为echo $?本身。可以这样做,Result=$?

下面的版本是经过道友点拨后修改的。比较不错。

#!/bin/bash
set -x
#需要的文件及目录
file_DyhWeb=DyhWeb.war
file_DyhWebService=DyhWebService.war
FILE1=apacheactivemq.properties
FILE2=config.properties
FILE3=property.properties
dir_webapps=/usr/local/tomcat-8580/webapps/
dir_DyhWeb=${dir_webapps}DyhWeb/WEB-INF/classes
dir_DyhWebService=${dir_webapps}DyhWebService/WEB-INF/classes
dir_appBackup=/usr/local/tomcat-8580/appBackup/
DATE=`date +%F%H%M`

BACKDIR_DyhWeb=${dir_appBackup}DyhWeb.$DATE
BACKDIR_DyhWebService=${dir_appBackup}DyhWebService.$DATE

rm -rf ${dir_webapps%w*}DyhWeb/* ${dir_webapps%w*}DyhWebService/*
if [ -f $file_DyhWeb ];then
    unzip  $file_DyhWeb -d ${dir_webapps%w*}DyhWeb > /dev/null

      mv ${dir_webapps}DyhWeb ${BACKDIR_DyhWeb} && mv ${dir_webapps%w*}DyhWeb ${dir_webapps}
      cd ${BACKDIR_DyhWeb}/WEB-INF/class
              /bin/cp -f $FILE1 $FILE2 $FILE3 ${dir_DyhWeb}
fi

if [ -f $file_DyhWebService ];then
    unzip $file_DyhWebService -d ${dir_webapps%w*}DyhWebService > /dev/null

      mv ${dir_webapps}DyhWebService ${BACKDIR_DyhWebService}  && mv ${dir_webapps%w*}DyhWebService ${dir_webapps}
      cd ${BACKDIR_DyhWebService}/WEB-INF/
              /bin/cp -f  $FILE1 $FILE2 ${dir_DyhWebService%c*}
      cd ${BACKDIR_DyhWebService}/WEB-INF/classes/
              /bin/cp -f  $FILE3 ${dir_DyhWebService}
fi

cd ${dir_webapps%w*}bin
    ./catalina.sh stop && sleep 15
    PIDNUM=`ps auxww | grep 'tomcat-8580' | grep -v "grep"|awk '{print $2}'|wc -l`
if [ $PIDNUM == 0 ];then
    ./catalina.sh start && tail -f ../logs/catalina.out
 else
      ps auxww | grep 'tomcat-8580' | grep -v "grep"|awk '{print $2}'| xargs -i kill -9 {}
      ./catalina.sh start && tail -f ../logs/catalina.out
fi


展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
0 评论
0 收藏
0
分享
返回顶部
顶部