玖叶教程网

前端编程开发入门

「shell脚本」懒人运维之自动升级tomcat应用(war包)

准备:

  1. 提前修改war包里的相关配置,并上传到服务器;
  2. 根据要自动升级的tomcat应用修改或添加脚本相关内容;
  3. tomcat启动脚本如是自己写的,要统一格式命名,如:xxx、xxxTomcat 等;
  4. 拿到生产使用前应在测试环境测试验证。

脚本:

#!/bin/bash

# Program:

#	This script is used for update tomcat.

# History:

# 2019/12/05	Yoson	First release

export tomcat1="/opt/run/tomcat1"

export tomcat2="/opt/run/tomcat2"

txt="tomcat1|tomcat2 warFile"

update() {

 echo "Update..."

 #file=${2##*/}

 #echo file=$file

 dir=${file%.*}

#echo $dir

 tomcat=$(eval echo \$1)

#echo tomcat=$tomcat

 sourceDir=$tomcat/webapps/$dir

#echo sourceDir=$sourceDir

 destinationDir=`dirname $2`

#echo destinationDir=$destinationDir

 sourceFile=${sourceDir}.war

#echo sourceFile=$sourceFile

 /etc/init.d/${1}Tomcat stop 2>/dev/null

 [ -d $sourceDir ] && mv $sourceDir $destinationDir/${dir}.`date -I`

 [ -f $sourceFile ] && rm -f $sourceFile

 cp -f $2 $tomcat/webapps/

 /etc/init.d/${1}Tomcat start

}

# 如果参数有两个,则往下执行,否则提示使用说明

if [ $# = '2' ];then

 export file=${2##*/}

 #echo file=$file

 #echo ${file#*.}

 # 如果参数2存在且为正常的war文件,则往下执行,否则提示文件不存在或不合法

 if [ -f $2 -a "${file#*.}" = "war" ];then

	case "$1" in

	 tomcat1|tomcat2)

		update $1 $2

		;;

	 *)

		echo "Usage: $0 $txt"

		exit 1

	esac

 else

 echo "$0: cannot stat ‘$2’: No such file or the file is not a war file"

 fi

else

 echo "Usage: $0 $txt"

fi


发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言