Docs/shell/java微服务更新/jar_deploy.sh
2022-10-18 16:59:37 +08:00

178 lines
No EOL
4.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 by ZeroC
# 2020/03/13
eureka=/home/appuser/insurance/servers/application-insurance-discovery-server/application-insurance-discovery-server.jar
discovery=application-insurance-discovery-server.jar
env=dev
# 参数检查及赋值
getParameter()
{
while [ -n "$1" ];do
case $1 in
--publicdir)
if [ -n "$2" ];then
# jar包临时存放目录
publicdir=$2
shift 2
else
echo -e "\033[32m$1 not set! \033[0m"
exit 1
fi
;;
--basedir)
if [ -n "$2" ];then
# 项目根目录
basedir=$2
shift 2
else
echo -e "\033[32m$1 not set! \033[0m"
exit 1
fi
;;
--project)
if [ -n "$2" ];then
# 应用名字
project=$2
shift 2
else
echo -e "\033[32m$1 not set! \033[0m"
exit 1
fi
;;
--package)
if [ -n "$2" ];then
# 包名
package=$2
shift 2
else
echo -e "\033[32m$1 not set! \033[0m"
exit 1
fi
;;
--option)
if [ -n "$2" ];then
# jar启动参数
option=$2
shift 2
else
echo -e "\033[32m$1 not set! \033[0m"
exit 1
fi
;;
--proption)
if [ -n "$2" ];then
# 项目运行参数
proption=$2
shift 2
else
echo -e "\033[32m$1 not set! \033[0m"
exit 1
fi
;;
*)
echo -e "\033[32mParameter wrong! \033[0m"
exit 1
;;
esac
done
if [ ! -n $publicdir ] || [ ! -n $basedir ] || [ ! -n $project ] || [ ! -n $package ];then
echo -e "\033[32mpublicdir/basedir/project/package not set! \033[0m"
exit 1
fi
}
# 检查并创建目录
dirIsExists()
{
if [ ! -d $1 ];then
mkdir -p $1
fi
}
# 创建必要目录
mkDir()
{
# 配置文件目录
confdir=$basedir/prod_conf
# 配置文件目录
appconfdir=$confdir/$project
# 应用存放目录
projectdir=$basedir/$project
# 过去版本存放目录
versionsdir=$projectdir/versions
if [ ! -d "$appconfdir" ];then
echo -e "\033[32mConfig directory not EXISTS! Please CHECK ! \033[0m"
exit 1
fi
dirIsExists $projectdir
dirIsExists $versionsdir
}
# 移动到对应目录并创建软链接
lnSoft()
{
if [ -f $publicdir/$package ];then
sign=`date +%Y%m%d-%H%M%S`
projectname=`echo $package | awk -F'.' '{print $1}'`
mv $publicdir/$package $versionsdir/$projectname-${sign}.jar
find $versionsdir -name "$projectname-*.jar" -mtime +7 -exec rm -rf {} \;
rm -rf $basedir/servers/$project/$package
ln -s $versionsdir/$projectname-${sign}.jar $basedir/servers/$project/$package
else
echo -e "\033[32m$package not Found in $publicdir! \033[0m"
exit 1
fi
}
# 启动jar文件
jarAction()
{
e_status=`ps aux | grep $discovery | grep -v grep | awk '{print $2}'`
if [ -z $e_status ];then
nohup java -jar $eureka > /dev/null 2>&1 &
fi
echo -e "\033[31mCreate soft Link\033[0m"
lnSoft
echo -e "\033[31mStop $project if Exists! \033[0m"
jar_status=`ps aux | grep $package |grep "java -jar" | grep -v grep | awk '{print $2}'`
if [ -n '$jar_status' ];then
kill -9 $jar_status > /dev/null 2>&1
fi
echo -e "\033[31mStart $project Now! \033[0m"
#cd $basedir/servers/$project && echo "nohup java -jar $package --spring.profiles.active=$env -Dspring.config.location=$appconfdir/application-${env}.yml > /dev/null 2>&1 &" | bash
if [[ $option ]] && [[ $proption ]];then
#cd $basedir/servers/$project && echo "nohup java -jar $option $package > /dev/null 2>&1 &" | bash
cd $basedir/servers/$project && echo "nohup java -jar $option $package $proption > /dev/null 2>&1 &" | bash
elif [[ $option ]] && [[ ! $proption ]];then
cd $basedir/servers/$project && echo "nohup java -jar $option $package > /dev/null 2>&1 &" | bash
elif [[ ! $option ]] && [[ $proption ]];then
cd $basedir/servers/$project && echo "nohup java -jar $package $proption > /dev/null 2>&1 &" | bash
else
cd $basedir/servers/$project && echo "nohup java -jar $package > /dev/null 2>&1 &" | bash
fi
if [ -z '$jar_status' ];then
echo -e "\033[32m$project start FAIL! \033[0m"
exit 1
fi
}
main()
{
getParameter "$@"
mkDir
jarAction
}
source /home/appuser/.bash_profile
main "$@"