Vue React專案使用shell指令碼部署

2021-10-09 17:30:19 字數 2585 閱讀 1363

執行**npm run deploy testnpm run deploy publish為正式和測試兩個環境

#!/usr/bin/env bash

# 任意命令出錯時終止執行

set -e

red=

"\033[0;31m"

yellow=

"\033[1;33m"

green=

"\033[0;32m"

reset=

"\033[0m"

now=

$(date +%s)

//獲取當前路徑(因為放在build資料夾下所以加上/../)

base=

$(cd

"$(dirname "$0" /../)

" ; pwd -p )

echo "開始遠端部署"

env_type=

$1if

["$env_type"

="publish"];

then

echo

"環境為: publish"

elif

["$env_type"

="test"];

then

echo

"環境為: test"

else

echo

"未指定環境或不支援的環境 $env_type, 目前支援的環境有:\n\tpublish\n\ttest\n"

exit 1

fiecho

"打包dist"

rm -rf $base/deploy/$env_type

mkdir -p $base/deploy/$env_type

tar -zcvf $base/deploy/$env_type/$now.tar.gz -c $base/dist .

echo

"打包完成: $base/deploy/$env_type/$now.tar.gz"

echo

"需要進行遠端部署嗎? (y/n)"

read answerif[

"$answer"

!=""]&&

["$answer"

!="y"]&&

["$answer"

!="y"];

then

echo

"本地打包完成!"

exit 0

fiecho

"進行遠端部署"

server_host=

"root@伺服器ip"

server_port=埠預設22

server_dist=

"伺服器部署路徑"

project_name=

"smart-sanitation"

#資料夾名if[

"$env_type"

="test"];

then

project_name=

"smart-sanitation-test"

fi# 指定當前目錄 請保證處於此專案根目錄

ssh -p $server_port

$server_host

"mkdir -p $server_dist/$project_name/"

echo

"[$env_type] 上傳資源"

scp -p $server_port

$base/deploy/$env_type/$now.tar.gz $server_host

:$server_dist/$project_name/

echo

"[$env_type] 上傳資源成功, 開始部署"

ssh -p $server_port

$server_host

"tar -xzf $server_dist/$project_name/$now.tar.gz -c $server_dist/$project_name"

rm -rf $base/deploy/$env_type

echo

"部署成功!"

1.本機生成公鑰放在伺服器的/root/.ssh/authorized_keys裡面

2.如果還不能免密登入需要設定資料夾許可權

3.檢視資料夾所屬使用者如果所屬使用者不是root

更改檔案擁有者 (chown )

改變檔案的使用者組用命令 ( chgrp )

同時修改使用者和組 (chown )

linux重啟tomcat專案指令碼 shell

有時需要每隔一段時間進行重啟tomcat專案,這時就可以寫個shell指令碼,將指令碼編輯 linux 輸入命令 crontab e 編輯定時任務,例 2 2 4 bin sh usr tomcat restart wx.sh usr tomcat restart wx.log 定時執行即可。下面是...

Vue React在某些語法上的使用差異

react vue都是當前非常熱門的前端js框架,兩者的效能都非常好,這篇部落格主要是作為筆記,用於區分react vue一些功能相同但語法不同的對比,以防止混淆兩者。一 vue react模板 vue.js 使用了基於 html 的模版語法 資料繫結最常見的形式就是使用 雙大括號 div 動態繫結...

專案使用中Linq使用總結

本文旨在和分享linq在專案中的實踐,曾經我參與過的專案都能看見linq的影子。linqtosql linqtostring linqtoxml linqtoentity 等等.個人認為linq是近年來微軟推出的非常成功的一項技術。比如,當我熟悉linq之後,再用sql寫商業邏輯時,感覺已經不再適應...