Shell 簡單的java微服務jar包 -- 部署腳本


部署描述:

    1.jenkins 通過maven編譯成jar 項目包

    2.shell 腳本從jenkins機器發布到:目標主機

    注釋:次腳本沒有寫jar包的備份,有時間加上

 

腳本內容:

    

#!/bin/bash


#線上服務器列表
HOST_LIST=${@:2}

#項目名
REMOTE_PROJECT=$1

#遠程JAR包存放目錄
REMOTE_JARDIR=/apps/project/${REMOTE_PROJECT}


#遠程備份目錄
REMOTE_BACKUP="/apps/${REMOTE_PROJECT}/backup"

#遠程執行用戶
REMOTEUSER='co_dev'



#  逐個部署每台服務器的微服務
for REMOTE in `echo $HOST_LIST`
do

        # 遠程包更新啟動
        PACKAGE=`find ./ -name ${REMOTE_PROJECT}.jar`
        scp $PACKAGE ${REMOTEUSER}@${REMOTE}:$REMOTE_JARDIR/${REMOTE_PROJECT}.jar
        if [ $? -eq 0 ];then
                # JAR shutdown
                JAR_pid=`ssh ${REMOTEUSER}@${REMOTE} ps -ef | grep "${REMOTE_PROJECT}.jar" | grep -v "grep"|awk '{print $2}'`
                if [  -n $JAR_pid ];then
                        ssh ${REMOTEUSER}@${REMOTE}  kill -9 $JAR_pid
                else
                        echo "進程更不存在可以繼續部署"
                fi
        else
                echo "${REMOTE_PROJECT}.jar   No such file or directory"
                exit 1
        fi



        # 啟動jar 服務並檢查端口
        sleep 2

        echo ".......................................開始啟動$REMOTE_PROJECT 服務"
        ssh ${REMOTEUSER}@${REMOTE} "nohup /apps/sofe/jdk1.8.0_131/bin/java -jar  -Xms2048M -Xmx4096M  -XX:+UseConcMarkSweepGC -XX:-PrintGCDetails -Dspring.profiles.active=prod1 ${REMOTE_JARDIR}/${REMOTE_PROJECT}.jar  >>/apps/project/${REMOTE_PROJECT}/${REMOTE_PROJECT}.log 2>&1 &"
        sleep 10
        java_pid=`ssh $REMOTEUSER@$REMOTE ps -ef | grep "$REMOTE_PROJECT" | egrep -v "grep|log"|wc -l`
        if [[  $java_pid -ge 1 ]];then
                        echo "${REMOTE_PROJECT} startup is successful"
                else
                        echo "${REMOTE_PROJECT}  startup is filed"
                        exit 3
        fi

        echo "$REMOTE 服務器 ${REMOTE_PROJECT} 項目部署完畢...................................."
        echo -e "\n\n\n"
done

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM