成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

ssh 執(zhí)行遠程主機命令的自動化 bash 腳本

ASCH / 2596人閱讀

摘要:在遠程主機中運行命令的語法最近的一個項目中,我們前端需要自己發(fā)布靜態(tài)資源到遠程目標(biāo)服務(wù)器上,中間需要經(jīng)過一個跳板機為什么不用公司內(nèi)部的方式發(fā)布,原因很多,這里就不表述了。

TLDR;
在遠程主機中運行命令的 shell 語法:

$: ssh user@host "commands"

最近的一個項目中,我們前端需要自己發(fā)布靜態(tài)資源到遠程目標(biāo)服務(wù)器上,中間需要經(jīng)過一個跳板機(為什么不用公司內(nèi)部的 GitLab 方式發(fā)布,原因很多,這里就不表述了)。前端如果手動發(fā)布的話需要經(jīng)過以下步驟:

把所有靜態(tài)資源壓縮成一個 tgz 包

把壓縮包 scp 到跳板機

ssh 到跳板機

把壓縮包從跳板機 scp 到靜態(tài)資源的目標(biāo)主機

ssh 到目標(biāo)主機

解壓縮壓縮包到指定目錄

執(zhí)行 py 腳本,發(fā)布到 cdn

從上面的步驟可以看出如果手動發(fā)布一個服務(wù)器,大概需要經(jīng)過7個步驟,每次發(fā)布都需要至少 4-5 分鐘時間等待(我們有 12 臺需要發(fā)布的機器,每次發(fā)布都需要 4(從第 3 步開始重復(fù) 12 次) * 12 分鐘),而且如果網(wǎng)絡(luò)不太好的話,等待的時間就更長了;更不要說手動發(fā)布的時候會經(jīng)常忘了步驟且更容易出錯了,每次發(fā)布都好像回到了原始時代。

萬幸的是 ssh 本身支持在遠程主機中運行命令的,語法就是

$: ssh user@host "command1; command2; command3; ...."

此處的 command 應(yīng)該用 "" 包起來,避免 ; 被本地主機當(dāng)做定界符處理。 ok,知道 ssh 的用法,我們寫個 bash 處理一下上面 7 個步驟:

# 打壓縮包并上傳到跳板機的指定目錄
function compress() {
    tar -zcvf sc.tgz -C build . && scp -r sc.tgz root@xxx.xxx.xxx.xxx:~/oss_download/demo/
}

# 通過 ssh 登錄跳板機執(zhí)行 3 - 7 步
# 注意在跳板機跳登錄到目標(biāo)服務(wù)器的時候需要 ssh -tt ,可以在遠程機器上 ssh 到其他的遠程主機并執(zhí)行。詳細的解釋通過 man ssh 查看
# mkidr -p 是如果目標(biāo)機器不存在這個目錄,就先創(chuàng)建這個目錄,保證 cd 或者 tar 的時候不會因為目標(biāo)目錄不存在而引起報錯

function send() {
    ssh root@xxx.xxx.xxx.xxx "scp -r oss_download/demo/sc.tgz alibaba@${1}:~/ossdowload/data/demo/ ; ssh -tt alibaba@${1} "mkdir -p ossdowload; cd ossdowload; mkdir -p data/demo/sc/${version}; tar -zvxf data/demo/sc.tgz  -C data/demo/sc/${version}  && rm -rf data/demo/sc.tgz &&  ./ceph_tmp.py""
}

# 執(zhí)行 compress 和 send 函數(shù)
function deploy() {
    compress
    send ${1}
}

# 發(fā)送到目標(biāo)服務(wù)器
deploy yyy.yyy.yyy.yy

這是發(fā)布到一個遠程主機的命令的腳本,是不是很簡單?之后如果想發(fā)布到多個遠程主機,只要通過簡單的 while 語句就可以搞定;到這里就算結(jié)束了,大多數(shù)時候前端只需要掌握簡單的 bash 語法,就可以通過自動化腳本節(jié)省了大量的時間去泡妹子,好開心。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://m.hztianpu.com/yun/80532.html

相關(guān)文章

  • 使用Jenkins通過Publish Over SSH插件遠程控制主機執(zhí)行腳本

    摘要:環(huán)境介紹角色系統(tǒng)版本版本準(zhǔn)備工作在被遠程主機上準(zhǔn)備好腳本文件。禁止在目標(biāo)機上執(zhí)行命令,勾選后將會忽略在配置中選項中設(shè)置的命令。服務(wù)使用的用戶名,使用進行連接時為指定的用戶名。在這里填寫在遠程主機上執(zhí)行的命令。 ...

    MycLambert 評論0 收藏0
  • 如何用 Docker 實現(xiàn) PHP 命令行程序 CI/CD

    摘要:數(shù)人云今天帶來的文章將分享如何用實現(xiàn)命令行程序的過程中整體思路以及需要注意哪些問題。月日,超越傳統(tǒng)運維之道的話題將在北京延續(xù),四位業(yè)界大牛技術(shù)齊聚,結(jié)合傳統(tǒng)運維現(xiàn)狀及實踐案例,講述的超越之道。 數(shù)人云今天帶來的文章將分享如何用Docker實現(xiàn)PHP命令行程序的CI/CD過程中整體思路以及需要注意哪些問題。 6月10日,《DevOps&SRE超越傳統(tǒng)運維之道》的話題將在北京延續(xù),四位業(yè)界...

    Pink 評論0 收藏0
  • 如何用 Docker 實現(xiàn) PHP 命令行程序 CI/CD

    摘要:數(shù)人云今天帶來的文章將分享如何用實現(xiàn)命令行程序的過程中整體思路以及需要注意哪些問題。月日,超越傳統(tǒng)運維之道的話題將在北京延續(xù),四位業(yè)界大牛技術(shù)齊聚,結(jié)合傳統(tǒng)運維現(xiàn)狀及實踐案例,講述的超越之道。 數(shù)人云今天帶來的文章將分享如何用Docker實現(xiàn)PHP命令行程序的CI/CD過程中整體思路以及需要注意哪些問題。 6月10日,《DevOps&SRE超越傳統(tǒng)運維之道》的話題將在北京延續(xù),四位業(yè)界...

    stdying 評論0 收藏0

發(fā)表評論

0條評論

閱讀需要支付1元查看
<