Spring Cloud项目启动脚本

方式一

#!/bin/bash
source /etc/profile
cd `dirname $0`
BIN_DIR=`pwd`
echo "$BIN_DIR"
SERVER_NAME="aid-app-web"
PROFILE=test

PIDS=`ps -ef | grep java | grep "$SERVER_NAME" | grep -v "grep" |awk '{print $2}'`
if [ -n "$PIDS" ]; then
echo "kill $SERVER_NAME PID: $PIDS"
kill -9 $PIDS
fi

echo "backup start "
BAK_DIR="$BIN_DIR/bak"
if [ ! -d $BAK_DIR ]; then
mkdir $BAK_DIR
fi
date=`date +%Y%m%d%H%M`
bakJarName=${SERVER_NAME}.jar
cp $BIN_DIR/$bakJarName $BAK_DIR/$bakJarName.$date
echo "backup success $BAK_DIR/$bakJarName.$date"

LOGS_DIR="$BIN_DIR/logs"
if [ ! -d $LOGS_DIR ]; then
mkdir $LOGS_DIR
fi
TD=`date +'%Y%m%d'`
STDOUT_FILE="$LOGS_DIR/stdout.log_$TD"

TOMCAT_DIR="$BIN_DIR/tomcat"
if [ ! -d $TOMCAT_DIR ]; then
mkdir $TOMCAT_DIR
fi

JAVA_MEM_OPTS=""
BITS=`java -version 2>&1 | grep -i 64-bit`
if [ -n "$BITS" ]; then
JAVA_MEM_OPTS=" -server -Xmx512m -Xms512m -Xmn256m -XX:PermSize=128m -Xss256k -XX:+DisableExplicitGC -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:+UseCMSCompactAtFullCollection -XX:LargePageSizeInBytes=128m -XX:+UseFastAccessorMethods -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=70 -Djava.io.tmpdir=$TOMCAT_DIR "
else
JAVA_MEM_OPTS=" -server -Xms512m -Xmx512m -XX:PermSize=128m -XX:SurvivorRatio=2 -XX:+UseParallelGC "
fi

echo " Starting the $SERVER_NAME ..."
# nohup java $JAVA_MEM_OPTS -Dprofile=$PROFILE -jar ${SERVER_NAME}.jar > $STDOUT_FILE 2>&1 &
nohup java $JAVA_MEM_OPTS -Dspring.profiles.active=$PROFILE -jar ${SERVER_NAME}.jar > $STDOUT_FILE 2>&1 &

echo "OK!"
PIDS=`ps -ef | grep java | grep "$SERVER_NAME" | grep -v "grep" | awk '{print $2}'`
echo "PID: $PIDS"
echo "STDOUT: $STDOUT_FILE"
#tail -f "$STDOUT_FILEe

 

 

方式二

/data/payemnt2/develop.sh

#!/bin/bash

tag=$1
post=6061
service=payment2
jar_path=/data/${service}/$service.jar

# 保存副本数
bak_count=10

set -e

cd `dirname ${jar_path}`


function isok() {
  if [ $? -ne 0];then
  return 1;
  fi
}

function upgrade () {
if [ ! -d "bak" ];then
        mkdir bak
fi

cp -f ${jar_path} bak/${service}`date "+%F%H%M%S"`.jar
/bin/bash /data/run_server.sh ${service} ${jar_path} ${post} stop
#mv `echo $jar_path | sed -nE 's@.*/(.*).jar@\1@p'`-${tag}.jar ${jar_path} -f
mv ${tag} ${jar_path} -f
chmod u+x ${jar_path}
chown www.www ./  -R
/bin/bash /data/run_server.sh ${service} ${jar_path} ${post} restart
#isok
}

function rollbak () {
tag=`ls -lr bak/ | grep jar |head -1 |awk '{print $9}'`
if [  -z $tag ];then
  echo "未发现副本,请重新执行部署"
  exit
else
cp bak/${tag} ${jar_path} -f
/bin/bash /data/run_server.sh ${service} ${jar_path} ${post} restart
#isok
fi
}

function rm_bak () {
bak_count=$1
count=`ls -l bak/*.jar | wc -l`
if [ ${count} -gt ${bak_count} ];then
  n=$(expr ${count} - ${bak_count}) # 需要删除的文件数
  for f in $(ls -lrt bak/*.jar|head -$n|awk '{print $9}');do
    rm -f ${f}
  done
  echo "备份删除完毕"
else
  echo "没有需要删除的备份"
fi
}

if [ $tag == rollbak ];then
   # 回滚
 rollbak
else
  # 部署
 upgrade
fi
rm_bak ${bak_count}
/data/run_server.sh


#!/bin/bash

SERVER=$1
JAR_PATH=$2
POST=$3

function isRuning(){
    PID=`ps -ef | grep  $JAR_PATH | grep java | grep -v grep | awk '{print $2}'`
    if [ -z "${PID}" ]
    then
        return 1
    else
        echo "${PID}"
        if ss -ntl | grep $POST >/dev/null
        then
            return 0
        else
            return 2
        fi
    fi
}


function stop(){
    runFlag=$(isRuning)
    if [ $? -eq 1 ]; then
        echo "$SERVER is already stoped."
    else
        echo "准备关闭$SERVER"
        service $SERVER stop
        echo "5S后测试是否关闭服务"
        sleep 2
        echo "3";sleep 1;echo "2";sleep 1;echo "1";sleep 1
        runFlag=$(isRuning)
        if [ $? -eq 1 ]
        then
            echo "$SERVER is already stoped"
        else
            echo "准备强制结束服务"
            kill -9  $runFlag
        fi
    fi
    
}



function start() {
   local runFlag=$(isRuning)
   if [ $? -eq 0 ]
   then
       echo "正在启动$SERVER服务" 
       service $SERVER restart
       echo "30s后测试服务是否启动"
       sleep 27
       echo "3";sleep 1;echo "2";sleep 1;echo "1";sleep 1
       runFlag=$(isRuning)
       echo ${runFlag}
       if [  ${runFlag} -eq 0 ]
       then
           echo "$SERVER 启动失败,请检查配置"
           return 1
       else
           echo "$SERVER 启动成功 "
       fi
   else
       echo "$SERVER已经启动"
   fi
    
}
function restart() {
    stop 
    start 
   #service $SERVER restart
 }

case "$4" in 
start) 
start 
;; 

stop) 
stop 
;; 

restart) 
restart 
;; 

status)
isRuning
;;

*) 
echo $"Usage: $0 {start|stop|restart|status}" 
esac

 

posted @ 2019-01-16 14:47  TIMEAWAY  阅读(1248)  评论(0编辑  收藏  举报