用腳本登錄跳板機(jī)與遠(yuǎn)程目標(biāo)機(jī)器

前情介紹:

????? 最近醋粟,需要自己動(dòng)手部署項(xiàng)目到測(cè)試環(huán)境仗阅。測(cè)試環(huán)境需要用跳板機(jī)登錄昌讲。于是每天自己在不停的輸入ssh命令登錄到跳板機(jī)和遠(yuǎn)程測(cè)試機(jī)器。煩死减噪。敲了一遍又一遍的登錄命令短绸,而跳板機(jī)還是用名字的,名字卻老長(zhǎng)老長(zhǎng)筹裕,記不住醋闭。于是,每次登錄前朝卒,先找到對(duì)應(yīng)的跳板機(jī)名稱证逻,然后copy到命令里面,然后再去登錄扎运。要最終登錄到測(cè)試機(jī)器上瑟曲,需要做三步:1. 打開記錄跳板機(jī)地址名稱的文件;2.在終端輸入ssh登錄命令豪治,copy跳板機(jī)名稱粘貼到終端作為登錄命令的參數(shù). 3.在跳板機(jī)器上再輸入一遍命令登錄到目標(biāo)機(jī)器上洞拨。花去的時(shí)間不說负拟,問題是自己老在做這個(gè)重復(fù)沒有技術(shù)含量的動(dòng)作烦衣。很顯然,我要自動(dòng)化掩浙。腳本花吟,不就是干這個(gè)事情嗎?OK厨姚,我決定寫一個(gè)登錄到目標(biāo)機(jī)器的腳本衅澈。

腳本第一稿:

?????? 登錄的命令其實(shí)很簡(jiǎn)單,不就是“ssh -i ${cert-file} ${target_machine}” 嗎谬墙?敲兩個(gè)命令就好今布,但于我前面介紹的的原因,這兩個(gè)命令敲的快不了拭抬。因此部默,一開始的想法就是把這兩條命令放在sh腳本中執(zhí)行即可。于是造虎,第一稿出爐傅蹂,格式如下:

#!/bin/sh

TARGET_MACHINE=$1

board_machine=$2

local-cert-file=$3

board-cert-file=$4

echo "you input target machine:" $TARGET_MACHINE

echo "you input machine profile:" $local-cert-file

sudo ssh -i ${local-cert-file} ${board_machine} "ssh -i ${board-cert-file} $TARGET_MACHINE"

執(zhí)行,發(fā)現(xiàn)出來錯(cuò)誤:

Pseudo-terminal will not be allocated because stdin is not a terminal

發(fā)現(xiàn)這事偽終端問題。于是份蝴,添加選項(xiàng)-tt解決犁功。最后一句話成這樣:

sudo ssh -i ${local-cert-file} ${board_machine} "ssh -i? -tt ${board-cert-file} $TARGET_MACHINE"

然后chmod +x login.sh,再執(zhí)行./login.sh 10.0.1.9 xxxxxx#@longboardmachinename ./local-certfile /home/board-certfiledir/board-certiflename婚夫。 ok波桩,順利登錄到目標(biāo)機(jī)器10.0.1.9了。雖然正常工作了请敦,可是這4個(gè)參數(shù)要敲這么長(zhǎng)镐躲,根本沒有改進(jìn)啊,還是會(huì)煩死侍筛。萤皂。。不行匣椰,還得改進(jìn)裆熙;

腳本第二稿:

因?yàn)樘鍣C(jī)的名稱是不變的,因此完全可以寫死在腳本里面啊禽笑。而且因?yàn)楸镜睾吞鍣C(jī)的certfile名稱完全一致入录,都是形如xxx_cert.pem的格式,xxx是對(duì)應(yīng)的測(cè)試環(huán)境標(biāo)記佳镜,因此改寫如下:

#!/bin/sh
TARGET_MACHINE=$1
PROFILE=$2
echo "you input target machine:" $TARGET_MACHINE
echo "you input machine profile:" $PROFILE
echo "Begin to login target machine......"
board-certfile="/home/certfiledir/${PROFILE}_cert.pem"
echo "pem:" ${board-certfile}
sudo ssh -i ${PROFILE}_cert.pem #longboardmachinename# "ssh -tt -i ${board-certfile} $TARGET_MACHINE"

此時(shí)僚稿,就只要輸入2個(gè)參數(shù)了,鍵入: ./login.sh 10.0.1.9 test,這樣就用到測(cè)試的認(rèn)證文件登錄到目標(biāo)機(jī)器上了蟀伸。只需要記錄下要登錄的目標(biāo)機(jī)器和認(rèn)證文件的標(biāo)記即可蚀同。此時(shí),我突然只想登錄到跳板機(jī)上啊掏,這個(gè)又不適用了蠢络。。迟蜜。于是刹孔,再改。

腳本第三稿:

添加選項(xiàng)娜睛,采用if分支髓霞。如果只想登錄到跳板機(jī),就把第一個(gè)target-machine的名稱寫成“board”微姊,發(fā)現(xiàn)是“board”酸茴,則只登錄到跳板機(jī)就行分预。添加if后的寫法如下:

#!/bin/sh
TARGET_MACHINE=$1
PROFILE=$2
echo "you input target machine:" $TARGET_MACHINE
echo "you input machine profile:" $PROFILE
if [ $TARGET_MACHINE = "board" ];then
??? echo "Begin to login board machine......"
??? sudo ssh -i ${PROFILE}_cert.pem #longboardmachinename#
elif [ $TARGET_MACHINE ];then
??? echo "Begin to login target machine......"
??? board-certfile="/home/certfiledir/${PROFILE}_cert.pem"
??? echo "pem:" ${board-certfile}
??? sudo ssh -i ${PROFILE}_cert.pem?#longboardmachinename# "ssh -tt -i ${board-certfile} $TARGET_MACHINE"
else
??? echo "Usage: login.sh [target_machine] [profile(test|release|]."
??? echo "???? [target_machine]: the ip of the machine or 'board' if you only want to login the board machine"
fi

此時(shí)兢交,就支持只登錄到跳板機(jī)的任務(wù)了。只需輸入:./login.sh board test即可笼痹。

最終配喳,這個(gè)腳本執(zhí)行時(shí)酪穿,只要輸入你要登錄的目標(biāo)機(jī)器和認(rèn)證文件標(biāo)記即可。只要一步晴裹,時(shí)間1s 搞定被济。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市涧团,隨后出現(xiàn)的幾起案子只磷,更是在濱河造成了極大的恐慌,老刑警劉巖泌绣,帶你破解...
    沈念sama閱讀 216,544評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件钮追,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡阿迈,警方通過查閱死者的電腦和手機(jī)元媚,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,430評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來苗沧,“玉大人刊棕,你說我怎么就攤上這事〈眩” “怎么了甥角?”我有些...
    開封第一講書人閱讀 162,764評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)识樱。 經(jīng)常有香客問我蜈膨,道長(zhǎng),這世上最難降的妖魔是什么牺荠? 我笑而不...
    開封第一講書人閱讀 58,193評(píng)論 1 292
  • 正文 為了忘掉前任翁巍,我火速辦了婚禮,結(jié)果婚禮上休雌,老公的妹妹穿的比我還像新娘灶壶。我一直安慰自己,他們只是感情好杈曲,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,216評(píng)論 6 388
  • 文/花漫 我一把揭開白布驰凛。 她就那樣靜靜地躺著,像睡著了一般担扑。 火紅的嫁衣襯著肌膚如雪恰响。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,182評(píng)論 1 299
  • 那天涌献,我揣著相機(jī)與錄音胚宦,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛枢劝,可吹牛的內(nèi)容都是我干的井联。 我是一名探鬼主播,決...
    沈念sama閱讀 40,063評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼您旁,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼烙常!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起鹤盒,我...
    開封第一講書人閱讀 38,917評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤蚕脏,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后侦锯,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蝗锥,經(jīng)...
    沈念sama閱讀 45,329評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,543評(píng)論 2 332
  • 正文 我和宋清朗相戀三年率触,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了终议。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,722評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡葱蝗,死狀恐怖穴张,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情两曼,我是刑警寧澤皂甘,帶...
    沈念sama閱讀 35,425評(píng)論 5 343
  • 正文 年R本政府宣布,位于F島的核電站悼凑,受9級(jí)特大地震影響偿枕,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜户辫,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,019評(píng)論 3 326
  • 文/蒙蒙 一渐夸、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧渔欢,春花似錦墓塌、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,671評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至垫挨,卻和暖如春韩肝,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背九榔。 一陣腳步聲響...
    開封第一講書人閱讀 32,825評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工哀峻, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留涡相,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,729評(píng)論 2 368
  • 正文 我出身青樓谜诫,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親攻旦。 傳聞我的和親對(duì)象是個(gè)殘疾皇子喻旷,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,614評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容

  • 加密算法 對(duì)稱加密算法 加密和解密使用同一個(gè)密鑰 DES、3DES牢屋、AES且预、Blowfish、Twofish烙无、ID...
    毛利卷卷發(fā)閱讀 1,584評(píng)論 0 4
  • 系統(tǒng)巡檢腳本:Version 2016.08.09 ############################ 系統(tǒng)...
    NamasAmitabha閱讀 1,303評(píng)論 0 0
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理锋谐,服務(wù)發(fā)現(xiàn),斷路器截酷,智...
    卡卡羅2017閱讀 134,652評(píng)論 18 139
  • ??? ?? ?? ? ??? ?? ??? ??? ?? ??? ????? ??????~
    天蝎座韓翻閱讀 208評(píng)論 0 0
  • 12月的第一個(gè)夜晚 大概會(huì)是個(gè)不眠之夜 還不休息有點(diǎn)擔(dān)心明天的課程會(huì)狀態(tài)不好 不過這不是問題的主要原因 我還欠她一...
    夏不寒閱讀 453評(píng)論 0 0