#!/bin/bash ## Edit date 2020/04/07 ## 说明: 脚本用于更新燕赵项目 ## 默认配置文件目录、app存放目录、 ## 各模块的tomcat已配置完成,且存放在同一目录结构下、 ## 使用nginx做代理转发、备份目录存在 # 配置文件存放目录 CONFIG=/home/qianhai/config # app存放目录,包括war包及静态文件包 APP=/home/qianhai/app # tomcat目录 TOMCAT=/home/qianhai/apache-tomcat-8.5.53 # zookeeper目录 ZOOKEEPER=/home/qianhai/zookeeper-3.4.14 # 静态文件目录 HTML=/usr/local/webserver/nginx/html # 备份目录 BACKUP=/home/qianhai/backup # 当前时间 NOW=`date +%Y%m%d-%H%M%S` # 解压 unpack() { source=$1 destination=$2 suffix=`echo $source | awk -F'.' '{print $NF}'` if [ $suffix == "war" ];then /usr/bin/unzip $source -d $destination elif [ $suffix == "tar" ];then /usr/bin/tar -xf $source -C $destination fi } # 替换配置文件 replace() { source=$1 destination=$2 cp -rf $source $destination } # 检查zk状态 checkzk() { pid=`ps aux | grep zookeeper | grep -v grep | awk '{print $2}'` if [ -z $pid ];then $ZOOKEEPER/bin/zkServer.sh start fi } # 备份 backup() { app=$1 destination=$2 if [ -f "$BACKUP/$app-$NOW.tar.gz" ];then rm -rf $BACKUP/$app-$NOW.tar.gz fi /usr/bin/tar -zcvf $BACKUP/$app-$NOW.tar.gz $destination/$app } # 清理 remove() { app=$1 destination=$2 /usr/bin/rm -rf $destination/$app/* } # 更新 update() { name=$1 destination=$2 app=$3 unpack $APP/$name $destination/$app } # 启动应用 startapp() { app=$1 destination=$2 pid=`ps aux | grep $app | grep $TOMCAT | grep -v grep | awk '{print $2}'` if [ -n $pid ];then /usr/bin/kill -9 $pid >/dev/null 2>&1 fi $destination/bin/startup.sh } echo -e "\033[31;1m++++++Module List++++++\033[0m" echo -e "\033[32;1m\tc: Core \n\ta: Admin \n\tas: Admin-Static \n\tm: Mvc \n\tms: Mvc-Static \n\tp: Push \n\tq: Quick \t\033[0m" echo -e "\033[31;1mNotice: Valid Choice - c/a/as/m/ms/p/q\033[0m" read -p "Choose Module: " module case $module in c|C|Core|CORE) project="core" package="core.war" dir=$TOMCAT-$project/webapps ;; a|A|Admin|ADMIN) project="admin" package="admin.war" dir=$TOMCAT-$project/webapps ;; as|AS|AdminStatic|ADMINSTATIC|Admin-Static|ADMIN-STATIC) project="admin-static" package="admin-static.tar" dir=$HTML ;; m|M|Mvc|MVC) project="mvc" package="mvc.war" dir=$TOMCAT-$project/webapps ;; ms|MS|MvcStatic|MVCSTATIC|Mvc-Static|MVC-STATIC) project="mvc-static" package="mvc-static.tar" dir=$HTML ;; p|P|Push|PUSH) project="push" package="push.war" dir=$TOMCAT-$project/webapps ;; q|Q|Quick|QUICK) project="quick" package="quick.war" dir=$TOMCAT-$project/webapps ;; *) echo -e "\033[31;5mWrong Input! Please Check! \033[0m" exit 1 ;; esac checkzk if [ $project == "mvc-static" -o $project == "admin-static" ];then backup $project $dir remove $project $dir update $package $dir $project else backup $project $dir remove $project $dir update $package $dir $project replace $CONFIG/$project/* $dir/$project/WEB-INF/classes/ startapp $project $dir/.. fi