Docs/工作-前海/update_yanzhao_car.sh
2022-10-18 16:59:37 +08:00

161 lines
3.1 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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