国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

ssh 執(zhí)行遠(yuǎn)程主機(jī)命令的自動(dòng)化 bash 腳本

ASCH / 2525人閱讀

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

TLDR;
在遠(yuǎn)程主機(jī)中運(yùn)行命令的 shell 語(yǔ)法:

$: ssh user@host "commands"

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

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

把壓縮包 scp 到跳板機(jī)

ssh 到跳板機(jī)

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

ssh 到目標(biāo)主機(jī)

解壓縮壓縮包到指定目錄

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

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

萬(wàn)幸的是 ssh 本身支持在遠(yuǎn)程主機(jī)中運(yùn)行命令的,語(yǔ)法就是

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

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

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

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

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ā)布到一個(gè)遠(yuǎn)程主機(jī)的命令的腳本,是不是很簡(jiǎn)單?之后如果想發(fā)布到多個(gè)遠(yuǎn)程主機(jī),只要通過(guò)簡(jiǎn)單的 while 語(yǔ)句就可以搞定;到這里就算結(jié)束了,大多數(shù)時(shí)候前端只需要掌握簡(jiǎn)單的 bash 語(yǔ)法,就可以通過(guò)自動(dòng)化腳本節(jié)省了大量的時(shí)間去泡妹子,好開(kāi)心。

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/80532.html

相關(guān)文章

  • 使用Jenkins通過(guò)Publish Over SSH插件遠(yuǎn)程控制主機(jī)執(zhí)行腳本

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

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

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

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

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

    Pink 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<