天天看點

Jenkins 自動化部署上線

Jenkins 自動化部署上線

摘要

jenkins自動化部署項目,通過jenkins 部署來節省運維時間,不需要手動cp上線及版本釋出

Jenkins 自動化部署上線
Jenkins 自動化部署上線

Jenkins

    • (1) Java 環境示範 [Jenkins和Tomcat在一台伺服器上]
    • (2) Java 環境示範 [Jenkins和Tomcat不在一台伺服器上]
    • (3) Java 環境示範 [上線腳本]
    • (4) NodeJs 環境示範 [上線腳本]
    • 一、Jenkins是什麼
    • 二、上線流程圖
    • 三、Jenkins安裝配置
    • 四、Jenkins 自動化部署項目案例

Jenkins是一款自包含的開源自動化服務,可用于自動執行與建構,測試和傳遞或部署軟體有關的各種任務。
Jenkins目前可以通過本地系統軟體包Docker進行安裝,甚至可以通過任何安裝了Java運作環境的計算機獨立運作      

既然我們說到自動化上線,我們就不得不說說一個項目上線的流程.隻有規範起來才可以做到不出事故!

上線流程圖如下圖所示

Jenkins 自動化部署上線

Jenkins依賴Java環境,我們需要安裝Java環境以及相關的環境準備
  1. ###關閉防火牆
  2. $ iptables -F
  3. $ iptables -X
  4. $ systemctl stop firewalld
  5. $ systemctl disable firewalld
  6. ###安裝yum源
  7. $ wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
  8. $ wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
  9. $ yum clean all && yum makecache  

1.下載下傳Jdk包

Jenkins 自動化部署上線

下載下傳位址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

上傳jdk包到伺服器

  1. ###解壓拷貝jdk
  2. $ tar xf jdk-8u171-linux-x64.tar.gz -C /usr/local/
  3. $ ln -s /usr/local/jdk1.8.0_171/ /usr/local/jdk
  4. $ ln -s /usr/local/jdk/bin/java /usr/bin/java
  5. ###設定環境變量
  6. $ vim /etc/profile
  7. export JAVA_HOME=/usr/local/jdk
  8. export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
  9. export PATH=$JAVA_HOME/bin:$PATH
  10. $ source  /etc/profile

2.安裝Jenkins

  1. $ wget  -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat/jenkins.repo
  2. $ rpm --import https://pkg.jenkins.io/redhat/jenkins.io.key
  3. $ yum install jenkins -y
  4. $ systemctl start jenkins
  5. ##如果我們啟動Jenkins出現錯誤可以直接使用systemctl status jenkins檢視錯誤

jenkins相關目錄釋義:

(1)/usr/lib/jenkins/:jenkins安裝目錄,war包會放在這裡。
(2)/etc/sysconfig/jenkins:jenkins配置檔案,“端口”,“JENKINS_HOME”等都可以在這裡配置。
(3)/var/lib/jenkins/:預設的JENKINS_HOME。
(4)/var/log/jenkins/jenkins.log:jenkins日志檔案。      

檢查端口是否存在

Jenkins 自動化部署上線

3.配置Jenkins

Jenkins 自動化部署上線

Jenkins有安全政策,我們按照提示拷貝驗證碼即可

Jenkins 自動化部署上線

将驗證碼複制到Web框裡

Jenkins 自動化部署上線

我們這裡使用推薦就可以了,因為後期我們都可以在安裝

Jenkins 自動化部署上線

安裝插件中,有的插件會因為網絡問題無法安裝成功

Jenkins 自動化部署上線

我們這裡可以建立一個管理者,或者直接使用admin

我們最好不要直接使用

admin

Jenkins 自動化部署上線
Jenkins 自動化部署上線

安裝完成通路位址:iP:8080

Jenkins 自動化部署上線

到這裡我們Jenkins已經安裝成功,剩下的就是配置插件和配置環境

Jenkins 自動化部署上線

因為我們目前什麼都沒有需要安裝插件,點選下步安裝插件

Jenkins 自動化部署上線
為了模拟環境我們需要安裝Jenkins一些相關插件

下面2個maven 插件都需要勾選

 插件名稱:

maven lntergration

Jenkins 自動化部署上線

我們勾選安裝重新開機

Jenkins 自動化部署上線
Jenkins 自動化部署上線

安裝完成後如下圖所示

預設是沒有下面的maven項目的

Jenkins 自動化部署上線

4.Jenkins配置項目

配置SVN位址

因為我是建立的Jenkins目錄,沒有權限,是以需要建立一個用于認證.

Jenkins 自動化部署上線
填寫SVN位址,因為我這裡的svn已經連結到ldap,是以不需要輸入svn的密碼,預設這裡是svn的使用者和密碼

具體文章可以參考 VisualSVN 遷移至Linux SVN+Apache+ssl內建LDAP

Jenkins 自動化部署上線

認證成功之後

Jenkins 自動化部署上線

了解maven 配置

首先我們的svn分支下面需要有pom.xml

Jenkins 自動化部署上線

繼續往下

因為我們隻安裝maven的插件,并沒有安裝maven服務,是以這裡需要我們配置

Jenkins 自動化部署上線

我們就在這裡添加一個名字,maven就自動安裝了

Jenkins 自動化部署上線

Maven安裝完成了,需要依賴吧都是從maven.apache.org下載下傳會比較慢,是以我們指定私服的位址,因為在實際生産中也都是使用私服的。

在maven的配置檔案裡面也需要配置  配置檔案

conf/settings.xml

因為我們所使用的是Jenkins的自動安裝,而不是指定路徑是以我們要查到這個配置檔案

maven 自動安裝的配置路徑

Jenkins 自動化部署上線

配置Maven倉庫位址

這裡配置的都是私服位址

相關文章  Jenkins+Maven+SVN+Nexus 搭建持續內建環境

Jenkins 自動化部署上線

配置Maven 鏡像位址

Jenkins 自動化部署上線

配置Maven 編譯參數   [研發都會]

相關文章:maven 編譯指令

Jenkins 自動化部署上線
這個pom.xml裡面配置是私服的位址
因為代碼裡面有很多東西是需要拉去依賴包,這些依賴包就存放在本地的私有倉庫裡(Nexus)      

代碼中pom.xml配置如下

私有倉庫的位址

Jenkins 自動化部署上線

5.建構測試

Jenkins 自動化部署上線

控制台輸出說明

Jenkins 自動化部署上線
Jenkins 自動化部署上線
Jenkins 自動化部署上線

6.Jenkins 工程目錄

Jenkins 自動化部署上線

可以通過修改Jenkins主目錄

Jenkins 自動化部署上線

Jenkins打包好後的目錄,這個war包就是我們需要拷貝的tomcat下面的

Jenkins 自動化部署上線

因為目前環境原因,我這裡隻是截圖Jenkins釋出的流程(本次示範隻是針對測試環境日常釋出版本)

1.Jenkins 配置

Jenkins 自動化部署上線

SVN部配置設定置

Jenkins 自動化部署上線

maven及腳本設定

Jenkins 自動化部署上線

2.不發腳本配置如下:

相關參考:Jenkins可用環境變量清單

腳本的存放路徑可以在

系統管理->全局配置->Jenkins路徑

  1. Last login: Thu Jun 28 18:01:59 2018 from 172.16.29.39
  2. [root@tomcat ~]# cat /jenkins/deploy.sh
  3. #!/bin/bash
  4. #
  5. # Jenkins工程建構通用TOMCAT部署腳本
  6. # @author abcdocker
  7. # @create_time 2017-08-19
  8. #
  9. # 在Jenkins内配置部署單元參數
  10. #      參數格式:MAVEN_MODULE_NAME:TOMCAT_ABSOLUTE_PATH  MAVEN子產品名稱:需要部署的目标TOMCAT絕對路徑
  11. #      隻有單個部署單元且沒有Maven子子產品時,子產品名稱參數可以沒有,參數格式為:TOMCAT_ABSOLUTE_PATH
  12. #
  13. # 注意:
  14. #      在本部署腳本内會執行TOMCAT啟動腳本,為避免Jenkins在建構成功以後殺掉所有衍生的背景程序,需要在Jenkins内配置全局環境變量 BUILD_ID 值為 allow_to_run_as_daemon
  15. #
  16. #
  17. DEPLOY_TARGET_TOMCAT=$TOMCAT
  18. #校驗部署參數,不能為空
  19. if [ -z "$DEPLOY_TARGET_TOMCAT" ]
  20. then
  21.    echo
  22.    echo 部署參數為空,部署失敗!
  23.    echo "#####################################################################"
  24.    echo
  25.    echo 單個部署單元參數格式:
  26.    echo          MAVEN_MODULE_NAME:TOMCAT_ABSOLUTE_PATH MAVEN子產品名稱:需要部署的目标TOMCAT絕對路徑
  27.    echo
  28.    echo 多個部署單元參數格式:(多個部署單元使用空格分割)
  29.    echo          MAVEN_MODULE_NAME:TOMCAT_ABSOLUTE_PATH MAVEN_MODULE_NAME:TOMCAT_ABSOLUTE_PATH
  30.    echo
  31.    echo "#####################################################################"
  32.    exit 1
  33. fi
  34. echo
  35. echo 部署參數:${DEPLOY_TARGET_TOMCAT}
  36. TOMCAT_ARR=${DEPLOY_TARGET_TOMCAT//;/ }
  37. ARR=($TOMCAT_ARR)
  38. ARR_LEN=${#ARR[*]}
  39. echo 共 ${ARR_LEN} 個部署單元
  40. i=1
  41. #擷取Jenkins傳入的目标TOMCAT組
  42. for T in $TOMCAT_ARR
  43. do
  44.    echo
  45.    echo 開始 處理第 ${i} 個部署單元
  46.    echo 第一個部署單元:$T
  47.    #擷取目标TOMCAT的WAR路徑和TOMCATA的絕對路徑
  48.    TOMCAT_PARAM=(${T//:/ })
  49.    MODULE_NAME=${TOMCAT_PARAM[0]}
  50.    TARGET_TOMCAT_PATH=${TOMCAT_PARAM[1]}
  51.    WAR_PATH="$WORKSPACE/$MODULE_NAME/target/*.war"
  52.    echo 部署單元子產品名稱:"${MODULE_NAME}"
  53.    echo 部署WAR包路徑:"${WAR_PATH}"
  54.    echo 部署TOMCAT路徑:"${TARGET_TOMCAT_PATH}"
  55.    #需要考慮MAVEN單子產品下的部署問題
  56.    #if [ "${#ARR[*]}" -eq 1 -a -z "$TARGET_TOMCAT_PATH" ]
  57.    if [ "$ARR_LEN" -eq 1 -a -z "$TARGET_TOMCAT_PATH" ]
  58.    then
  59.        #MAVEN過程沒有子子產品,單個部署單元
  60.        TARGET_TOMCAT_PATH=$MODULE_NAME
  61.    MODULE_NAME="NULL"
  62.    fi
  63.    #校驗參數,WORKSPACE變量來自于Jenkins環境變量
  64.    if [ -z "$MODULE_NAME" -o ! -f $WAR_PATH ]
  65.    then
  66.        echo 錯誤:MAVEN部署子產品名稱 參數為空 或 找不到WAR包!
  67.        echo 部署失敗!
  68.        exit 1
  69.    fi
  70.    if [ -z "$TARGET_TOMCAT_PATH" -o ! -d "$TARGET_TOMCAT_PATH" ]
  71.    then
  72.        echo 錯誤:目标TOMCAT絕對路徑 參數為空 或 該TOMCAT目錄不存在!
  73.        echo 部署失敗!
  74.        exit 1
  75.    fi
  76.    echo 開始清理目标TOMCAT啟動程序...
  77.    TOMCAT_PID=`ps -ef |grep "$TARGET_TOMCAT_PATH" |grep  "start" |awk '{print $2}'`
  78.    if [ -n "$TOMCAT_PID" ]
  79.    then
  80.        echo TOMCAT_${i},PID${TOMCAT_PID},正在結束該程序...
  81.        kill -9 $TOMCAT_PID && echo PID${TOMCAT_PID} 已被幹掉!
  82.    else
  83.        echo TOMCAT_${i} 程序未啟動!
  84.    fi
  85.    echo 開始清理目标TOMCAT緩存...
  86.    rm -rf $TARGET_TOMCAT_PATH/webapps/*
  87.    rm -rf $TARGET_TOMCAT_PATH/logs/*
  88.    rm -rf $TARGET_TOMCAT_PATH/work/*
  89.    echo 開始部署WAR包...
  90.    cp -a $WAR_PATH $TARGET_TOMCAT_PATH/webapps/ROOT.war && echo WAR包部署完畢。
  91.    echo 開始啟動目标TOMCAT服務...
  92.    sleep 10
  93.    /bin/bash $TARGET_TOMCAT_PATH/bin/startup.sh
  94.    echo 開始配置web目錄的FTP權限...
  95.    #啟動過程會自動解壓WAR包,是以在這裡需要等待WAR包解壓完成再調整目錄權限
  96.    sleep 30
  97.    chown -R vftpuser.vftpuser ${TARGET_TOMCAT_PATH}/webapps/ && echo 目錄權限配置完畢。
  98.    echo 部署成功
  99.    echo 完成 第 ${i} 個部署單元處理。
  100.    echo
  101.    ((i++))
  102. done

3.建構效果如下圖所示:

Jenkins 自動化部署上線

上面的腳本是針對Jenkins和Tomcat都在相同的目錄,有的時候我們測試環境會存在不在一台伺服器的情況,腳本如下

  1. 隻是腳本簡單的修改
  2. [root@tomcat ~]# cat /jenkins/ysc.sh
  3. #!/bin/bash
  4. #
  5. # Jenkins工程建構通用TOMCAT部署腳本
  6. # @author 劉曙
  7. # @create_time 2017-08-19
  8. #
  9. # 在Jenkins内配置部署單元參數
  10. #      參數格式:MAVEN_MODULE_NAME:TOMCAT_ABSOLUTE_PATH  MAVEN子產品名稱:需要部署的目标TOMCAT絕對路徑
  11. #      隻有單個部署單元且沒有Maven子子產品時,子產品名稱參數可以沒有,參數格式為:TOMCAT_ABSOLUTE_PATH
  12. #
  13. # 注意:
  14. #      在本部署腳本内會執行TOMCAT啟動腳本,為避免Jenkins在建構成功以後殺掉所有衍生的背景程序,需要在Jenkins内配置全局環境變量 BUILD_ID 值為 allow_to_run_as_daemon
  15. #
  16. #
  17. DEPLOY_TARGET_TOMCAT=$YSC
  18. [email protected]
  19. #校驗部署參數,不能為空
  20. if [ -z "$DEPLOY_TARGET_TOMCAT" ]
  21. then
  22.    echo
  23.    echo 部署參數為空,部署失敗!
  24.    echo "#####################################################################"
  25.    exit 1
  26. fi
  27. echo
  28. echo 部署參數:${DEPLOY_TARGET_TOMCAT}
  29. TOMCAT_ARR=${DEPLOY_TARGET_TOMCAT//;/ }
  30. ARR=($TOMCAT_ARR)
  31. ARR_LEN=${#ARR[*]}
  32. echo 共 ${ARR_LEN} 個部署單元
  33. i=1
  34. #擷取Jenkins傳入的目标TOMCAT組
  35. for T in $TOMCAT_ARR
  36. do
  37.    echo
  38.    echo 開始 處理第 ${i} 個部署單元
  39.    echo 第一個部署單元:$T
  40.    #擷取目标TOMCAT的WAR路徑和TOMCATA的絕對路徑
  41.    TOMCAT_PARAM=(${T//:/ })
  42.    MODULE_NAME=${TOMCAT_PARAM[0]}
  43.    TARGET_TOMCAT_PATH=${TOMCAT_PARAM[1]}
  44.    #WAR_PATH="/jenkins/workspace/ysc-all/${MODULE_NAME}/target/*.war"
  45.    WAR_PATH="${WORKSPACE}/${MODULE_NAME}/target/*.war"
  46.    echo 部署單元子產品名稱:"${MODULE_NAME}"
  47.    echo 部署WAR包路徑:"${WAR_PATH}"
  48.    echo 部署TOMCAT路徑:"${TARGET_TOMCAT_PATH}"
  49.    #判斷IP是否有相關目錄
  50.    ssh 172.16.1.35 "[ -d $TARGET_TOMCAT_PATH ]" >/dev/null 2>&1
  51.    if [ $? != 0 ];then
  52.       echo 錯誤
  53.    else
  54.       echo  正确
  55.    fi
  56.    #校驗參數,WORKSPACE變量來自于Jenkins環境變量
  57.    if [ -z "$MODULE_NAME" -o ! -f $WAR_PATH ]
  58.    then
  59.        echo 錯誤:MAVEN部署子產品名稱 參數為空 或 找不到WAR包!
  60.        echo 部署失敗!
  61.        exit 1
  62.    fi
  63.    #scp 軟體包
  64.   ssh $HOST /etc/init.d/${MODULE_NAME} stop
  65.   ssh 172.16.1.35 "[ -d $TARGET_TOMCAT_PATH/webapps/ROOT/ ]" >/dev/null 2>&1
  66.   if [ $? = 0 ];then
  67.      ssh 172.16.1.35 rm -rf $TARGET_TOMCAT_PATH/webapps/ROOT
  68.        if [ $? = 0 ];then
  69.           scp  $WAR_PATH [email protected]:$TARGET_TOMCAT_PATH/webapps/ROOT.war && echo WAR包部署完畢。
  70.           echo $TARGET_TOMCAT_PATH is OK
  71.        else
  72.           echo 删除$TARGET_TOMCAT_PATH is error
  73.        fi
  74.   else
  75.           echo "not found $TARGET_TOMCAT_PATH/webapps/ROOT"
  76.           scp  $WAR_PATH [email protected]:$TARGET_TOMCAT_PATH/webapps/ROOT.war && echo WAR包部署完畢。
  77.           ssh $HOST /etc/init.d/${MODULE_NAME} restart
  78.   fi
  79. ####################啟動檔案
  80. done
  81.  #scp /home/config.properties/ysc/${MODULE_NAME}.js [email protected]:$TARGET_TOMCAT_PATH/webapps/ROOT/web/js/basePath.js
  82.  ssh $HOST /etc/init.d/${MODULE_NAME} restart

Jenkins配置如下修改

Jenkins 自動化部署上線
Jenkins 自動化部署上線

修改完成後我們建構示範

Jenkins 自動化部署上線

提示:這種環境下配置檔案都是通過maven build進行控制,也就是通過研發控制配置檔案

+

+

線上環境示範

我們的上線流程如下:

Jenkins 自動化部署上線

Jenkins配置如下:

Jenkins 自動化部署上線
Jenkins 自動化部署上線
Jenkins 自動化部署上線

1.首先測試環境腳本:

  1. [root@tomcat ~]# cat /server/scripts/.upgrade-smscenter.sh
  2. #!/bin/bash
  3. WAR="/jenkins/workspace/portal-smscenter/bxg-sms-center-web/target/*.war"
  4. Path="/data/hub/bxg-smscenter/`date +%Y%m%d`/"
  5. scp_war(){
  6. if [ ! -d $Path ];then
  7. ssh root@file-server mkdir -p $Path
  8.    scp $WAR root@file-server:$Path
  9. else
  10.    scp $WAR root@file-server:$Path
  11. fi
  12. }
  13. ssh_file(){
  14.  ssh root@file-server "/bin/bash /server/script/bxg/bxg-smscenter.sh"
  15. }
  16. scp_war
  17. ssh_file

2.跳闆機腳本修改

[root@File-server1 ~]# cat /server/script/bxg/bxg-smscenter.sh#!/bin/bashHOST=online-server2WAR="/data/hub/bxg-smscenter/`date +%Y%m%d`"DIR="/application/smscenter/webapps/ROOT/"function scp_file {    if `ssh root@$HOST "[ ! -d $WAR ]"`;then            ssh root@$HOST "mkdir -p $WAR"    fi            scp $WAR/*.war root@$HOST:$WAR/            echo "scp $WAR/*.war root@$HOST:$WAR/"}ssh_deploy(){    ssh root@$HOST "/bin/bash /server/scripts/deploy_smscenter.sh"}scp_filessh_deploy      

3.web 伺服器腳本

  1. [root@online-server2 ~]# cat /server/scripts/deploy_smscenter.sh
  2. #!/bin/bash
  3. WAR="/data/hub/bxg-smscenter/`date +%Y%m%d`"
  4. OBJECT="/application/smscenter/webapps/ROOT/"
  5. Backup="/data/tomcat/bxg-smscenter-`date +%Y%m%d`"
  6. SCR_D="/application/smscenter/webapps/ROOT"
  7. #config="/data/bak"
  8. backup_tar(){
  9.    tar zcvf $Backup.tar.gz $SCR_D/
  10.    echo "為了防止意外cp整個項目目錄存放"
  11.    cp -a $SCR_D/ $Backup
  12.    rm -rf $OBJECT/*
  13. }
  14. cp_war(){
  15.    unzip $WAR/*.war -d $SCR_D/
  16. }
  17. cp_config(){
  18.    cat $Backup/WEB-INF/classes/application-prod.properties >$SCR_D/WEB-INF/classes/application-prod.properties
  19.    /etc/init.d/smscenter restart
  20. }
  21. backup_tar
  22. cp_war
  23. cp_config
  24. [root@online-server2 ~]#

相關文章  企業必會技能 tomcat

node 環境上線流程

Jenkins配置如下

[node項目不适用maven,是以可以不用建立maven項目,直接在Jenkins建立普通項目就可以]

Jenkins 自動化部署上線
Jenkins 自動化部署上線

1.測試環境腳本

  1. [root@tomcat ~]# cat /server/scripts/mobile/mobile.sh
  2. #!/bin/bash
  3. source /etc/profile
  4. HOST=file-server
  5. BASE_DIR=/server/scripts/mobile/m
  6. url=$1
  7. server=$2
  8. DATE=`date +%Y%m%d`
  9. tar(){
  10. rm -rf $BASE_DIR
  11.    [ -d $BASE_DIR ] || mkdir $BASE_DIR
  12.    cd $BASE_DIR
  13. echo "##########################################################"
  14. echo "代碼拉取中!!!"
  15. svn co -q $url/ .
  16.    echo "##########################################################"
  17. }
  18. cp(){
  19.    cd ${BASE_DIR}
  20. /bin/tar -zcvf m_${DATE}.tar.gz ./*
  21.    echo "##########################################################"
  22.    echo "檔案已經打包完成! 正在拷貝中!!!"
  23.    echo "##########################################################"
  24.    sleep 5
  25.    scp  m_${DATE}.tar.gz root@$HOST:/data/hub/bxg-mobile/
  26.    echo "##########################################################"
  27.    echo "檔案已經拷貝完成! 正在上傳伺服器中!!!"
  28.    echo "##########################################################"
  29.        ssh root@file-server "/bin/bash /server/script/bxg/bxg-mobile.sh $server"
  30. }
  31. tar
  32. cp
  33. [root@tomcat ~]#

2.跳闆機腳本

  1. [root@File-server1 ~]# cat /server/script/bxg/bxg-mobile.sh
  2. #!/bin/bash
  3. HOST=$1
  4. Mobile_tar="/data/hub/bxg-mobile"
  5. DIR="/application/node"
  6. DATE=`date +%Y%m%d`
  7. scp_file(){
  8.    if `ssh root@$HOST "[ ! -d $Mobile_tar ]"`;then
  9.            ssh root@$HOST "mkdir -p $Mobile_tar"
  10.    fi
  11.            scp $Mobile_tar/m_${DATE}.tar.gz root@$HOST:$DIR/
  12.        sleep 3
  13.        echo "   "
  14.        echo "##########################################################"
  15.        echo "File-server 正在拷貝 ${HOST}!!!"
  16.        sleep 3
  17.        echo "##########################################################"
  18. }
  19. ssh_deploy(){
  20.           echo "Hi"
  21.    ssh root@$HOST "/bin/bash /server/scripts/bxg/bxg-mobile.sh"
  22. }
  23. scp_file
  24. ssh_deploy

3.web 釋出腳本

  1. [root@iZbp11tefvghtcfn5mudgdZ ~]# cat /server/scripts/bxg/bxg-mobile.sh
  2. #!/bin/bash
  3. source /etc/profile
  4. DIR="/application/node"
  5. DATE=`date +%Y%m%d`
  6. Backup="/application/node/m/"
  7. BAK="/data/hub/bxg-mobile"
  8. backup_tar(){
  9.    echo "為了防止意外cp整個項目目錄存放"
  10.    cp -ar $Backup ${BAK}/mobile_$DATE
  11.    echo "online-server 原目錄拷貝備份完成!"
  12. }
  13. cp_war(){
  14.    /etc/init.d/mobile stop
  15.    #mv $Backup /tmp/m_${DATE} && rm -rf /tmp/m_${DATE}
  16. rm -rf $Backup
  17.    mkdir $Backup && cd /application/node/
  18. tar xf m_${DATE}.tar.gz -C $Backup
  19. }
  20. npm_config(){
  21.    cd $Backup
  22. cnpm install
  23. npm run build-prod
  24. npm run start-prod &>/var/log/mobile_${DATE}.log &
  25. }
  26. C(){
  27.    echo "++++++++++++++++++++++++++++++++++++++++++++++++++++"
  28.    curl  -I 127.0.0.1:3000
  29.    echo "###################################################"
  30.    echo "若是200 服務啟動正常! 可以啟動另一台!"
  31.    echo "###################################################"
  32. }
  33. backup_tar
  34. cp_war
  35. npm_config
  36. C

相關文章 Node.js 環境搭建

繼續閱讀