<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          使用Shell腳本優(yōu)化Linux服務(wù)器上部署流程

          共 3178字,需瀏覽 7分鐘

           ·

          2022-06-25 17:30


          寫在前面

          上次我們講了windows下的bat腳本打包上傳, 那么這次我們接著講下linux下的解壓發(fā)布。這里事先聲明,沒有自動擋的車------Jenkins之類的持續(xù)集成工具(如果有需要可以看我之前寫的gitlab和jenkins文章,或者參照我github上的github Actions,或者Travis CI之類的工具),因為是guoqi、yinhang、zhengfu那邊的環(huán)境,加之我就是一個權(quán)限很低的開發(fā),不讓搞,所以就直接點,上腳本吧。

          解決了什么問題?

          • 人工發(fā)包邏輯不難,但很繁瑣
          • 人工發(fā)包容易打錯包,打錯字,忘記打包,忘記發(fā)包
          • 人工發(fā)包因人而異,每個人有每個人的風(fēng)格,沒有規(guī)范,不利于回溯

          直接上腳本

          #!/bin/bash
          # 定義你項目的路徑,也就是解壓后nignx配置的html靜態(tài)資源目錄
          declare DEPLOY_PATH="/heaven/965"

          #
          # 封裝一個輸入方法
          function get_input() {
            echo "#========中電惠融一鍵部署-開始========#"
            echo "請輸入要部署的項目集合的數(shù)字編號:"
            echo "1、app  2、biz 3、fin"
            echo "4、app biz 5、app fin 6、biz fin"
            echo "7、app biz fin 8、退出"
            read -t 10 DEPLOY_NUM
            case $DEPLOY_NUM in
            "1")
            unzip2replace "app"
            ;;
            "2")
            unzip2replace "biz"
            ;;
            "3")
            unzip2replace "fin"
            ;;
            "4")
            unzip2replace "app"
            unzip2replace "biz"
            ;;
            "5")
            unzip2replace "app"
            unzip2replace "fin"
            ;;
            "6")
            unzip2replace "biz"
            unzip2replace "fin"
            ;;
            "7")
            unzip2replace "app"
            unzip2replace "biz"
            unzip2replace "fin"
            ;;
            *)
            exit 0
            esac
            echo "#========中電惠融一鍵部署-結(jié)束========#"
          }

          #
           解壓替換方法
          function unzip2replace() {
            echo "開始配置${1}端"
            sleep 3
            cd "${DEPLOY_PATH}/${1}"
            echo "開始備份${1}端"
            sleep 3
            if [ -d "dist" ];then
            echo "dist文件夾命中,開始備份"
            cur_date=`date '+%Y%m%d%H%M%S'`
            mv dist "dist-${cur_date}"
            else
            echo "dist文件夾未命中,無需備份"
            fi
            filename=`ls *.zip -t |head -n1|awk '{print $0}'`
            echo "開始解壓${filename}到目錄..."
            sleep 3
            unzip ${filename}
            echo "配置${1}端完成"
          }

          #
           執(zhí)行輸入方法
          get_input

          Shell相關(guān)知識點解析

          找出最新的zip文件

          filename=`ls *.zip -t |head -n1|awk '{print $0}'`

          定義一個變量DEPLOY_PATH

          declare DEPLOY_PATH="/heaven/965"

          定義一個方法unzip2replace

          function unzip2replace() {
            
          }

          解壓文件

          # zip包
          unzip 965.zip

          #
           tar包

          tar -zxvf 965.tar.gz

          獲取當(dāng)前日期

          date '+%Y%m%d%H%M%S'

          判斷dist文件夾是否存在,不存在就do nothing

          if [ -d "dist" ];then
            echo "dist文件夾命中,開始備份"
            cur_date=`date '+%Y%m%d%H%M%S'`
            mv dist "dist-${cur_date}"
          else
            echo "dist文件夾未命中,無需備份"
          fi

          獲取函數(shù)第一個參數(shù) “$1"

          最后

          通過樓上的例子,我們學(xué)習(xí)了一些shell腳本的知識,可能一些企業(yè)就是不招運維啊,所以一部分工作就讓開發(fā)來搞,無可厚非。但是你想一下,每次都上傳再解壓再替換啥的,東西是很簡單,但是很繁瑣,而且有些時候也容易打錯字啥的,既然有這些詬病,那為什么不停下來思考下,用腳本去搞呢?本文就是期望給讀者一些啟迪,在處理計算機上的一些復(fù)雜的、或者是繁瑣的事情,把它拆成一些指令集,匯聚成一把腳本,./deploy.sh,./deploy.bat完事,當(dāng)然啦,隨著技術(shù)的發(fā)展,如果領(lǐng)導(dǎo)能聽得進去的話,最好還是搞自動化集成部署,遺憾的是,這樣的領(lǐng)導(dǎo),我在國企、傳統(tǒng)的公司從未遇到。。。。。。


          瀏覽 108
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  性成人无码| 久9久9| 欧美在线观看网址 | 你懂的网址在线 | av资源站在线 |