161 lines
3.1 KiB
Bash
161 lines
3.1 KiB
Bash
#!/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
|