178 lines
No EOL
4.1 KiB
Bash
178 lines
No EOL
4.1 KiB
Bash
#!/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 "$@" |