shell腳本自動化部署


 

由於公司技術部團隊較小,沒有專門的運維團隊,所以運維工作技術部承包了。

 

一、純人工部署是這樣的:

   1. 本地打包:一般 maven clean package

   2. 借助xftp上傳到服務器對應目錄

   3. 借助 xshell連接到服務器

   4.開始部署:

         a、找到程序運行的進程id:ps -ef | grep java 

         b、殺死進程: kill -9 pid

         c、啟動新的jar包: java -jar  包名  --spring.profiles.active=test &

二、使用shell腳本自動化部署

   1. 腳本

     

 

#!/bin/bash

jarName=$1
jarNew=$(find $jarName*jar)
jarHead=$(find $jarName*jar | awk -F '.' '{print $1}')

#echo "jarHead --- ${jarHead}"

echo "本次更新的包名----${jarNew}----"
sleep 3


PID=`ps -aux | grep $jarHead | grep -v grep | grep -v deploy | awk '{print $2}'`
#unset PID
echo " ---舊進程PID:${PID}--"

if [ -n "$PID" ];
then
echo "殺死舊的進程……"
sleep 2
kill -9 $PID
else
echo "無舊服務……"
fi

echo "開始啟動……"
sleep 1
java -jar $jarNew --spring.profiles.active=test &

    2. 只需要把文件命名 deploy.sh,保存到jar包相同目錄下

    3. 啟動命令: 

        a、切換到jar包目錄

        b、啟動:./deploy.sh  jar包名

             比如包名  ticket-gateway-1.0.1-SNAPSHOT-f3dbc36.jar

             輸入 ./deploy.sh ticket-gateway-1.0.1-SNAPSHOT-f3dbc36

             然后回車鍵

        c、如果目錄下一個服務有多個jar,那么jar包名需要精確,如果只有一個jar包,輸入前面一部分能區分即可。

    4. 如果是線上環境,就新建一個文件 deploy-prod.sh,修改腳本最后一行:

     java -jar $jarNew --spring.profiles.active=prod &

注意:shell腳本文件名要包含 “deploy”

三、使用shell腳本依然需要自己打包、上傳,后續研究下Jenkins+git+maven自動化部署~

 


免責聲明!

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



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