我寫了一個腳本蔚袍,可在“任意”服務(wù)器上執(zhí)行命令配名!

大家好渠脉,我是冰河~~

冰河之前維護著上千臺服務(wù)器組成的服務(wù)器集群,如果每次需要在服務(wù)器上執(zhí)行命令的時候鳞青,都要手動登錄每臺服務(wù)器進行操作的話为朋,那也太麻煩了习寸。你想想,如果在上千臺服務(wù)器的集群中孵滞,每臺服務(wù)器中只需要簡單的執(zhí)行一個相同的命令鸯匹,那別說執(zhí)行命令了忽你,就是讓你依次手動登錄上千臺服務(wù)器,那也夠你受的了根蟹。估計依次登錄上千臺服務(wù)器,給你三天時間你可能都登不完伶贰,那怎么辦呢若锁?有沒有什么好的方法來解決這個問題呢悲龟?

image

別急须教,我們今天就是來解決這個問題的。

說實話乐疆,我在維護上千臺服務(wù)器集群的時候挤土,并沒有去依次手動登錄每臺服務(wù)器误算,為啥?沒錯筒占,就是因為我懶爸├纭这橙!我懶的去登錄导披,并且依次登錄那么多臺服務(wù)器,整個人都會崩潰的鹰晨。

image

于是模蜡,我就想辦法能不能寫個腳本,讓這個腳本接收我要執(zhí)行的命令闯传,然后將命令依次分發(fā)到集群上所有的服務(wù)器中執(zhí)行甥绿,這不就解決問題了嗎则披?說干就干。

不過骄呼,這里判没,有個需要注意的地方:那就是:需要提前配置好集群中每臺服務(wù)器的主機名和IP地址的對應(yīng)關(guān)系澄峰,能夠互相使用主機名進行通信,并配置了SSH免密碼登錄绸硕。這一點不行擔(dān)心魂毁,只要讓運維在規(guī)劃和分配服務(wù)器的時候,規(guī)劃好就行了咬崔,無需后面再依次登錄服務(wù)器處理垮斯。

為了方便小伙伴們理解只祠,這里我們就假設(shè)集群中存在1024臺服務(wù)器,每臺服務(wù)器的主機名為binghe1~binghe1024熊杨。每臺服務(wù)器可以通過主機名進行通信,接下來夷狰,我寫了一個名稱為distribute_command.sh的腳本郊霎,內(nèi)容如下所示。

#!/bin/bash
pcount=$#
if (( pcount<1 )) ; then
    echo no args;
    exit;
fi
#先在本機上執(zhí)行命令
echo ------------binghe$host-----------------
$@
#循環(huán)在集群中的遠程節(jié)點上執(zhí)行命令
for (( host=1 ; host<=1024; host=host+1)) ; do
    echo ------------binghe$host-----------------
    ssh binghe$host $@
done;

這個腳本的含義為:接收傳遞進來的命令进倍,將命令分發(fā)到主機名為binghe1~binghe1024的服務(wù)器上執(zhí)行猾昆,也就是說骡苞,使用這個腳本我們能夠做到:同時在集群的服務(wù)器上執(zhí)行相同的命令。

接下來贴见,為distribute_command.sh腳本賦予可執(zhí)行權(quán)限片部,如下所示霜定。

chmod a+x ./distribute_command.sh

使用格式如下:

./distribute_command.sh 在服務(wù)器上執(zhí)行的完整命令

使用示例

  • 在集群中的每臺服務(wù)器的/home目錄下創(chuàng)建hello.txt文,內(nèi)容為hello world
./distribute_command.sh echo "hello world" >> /home/hello.txt
  • 查看集群中每臺服務(wù)器上hello.txt文件的內(nèi)容
./distribute_command.sh cat /home/hello.txt
  • 刪除集群中每臺服務(wù)器上的hello.txt文件
./distribute_command.sh rm -rf /home/hello.txt

是不是很簡單跋剿磨德?所以說剖张,有時候,不要盲目的去執(zhí)行。很多時候丰滑,在做事情之前倒庵,要先思考下有沒有更好的解決方案炫刷,有沒有效率更加高效的解決方案浑玛。就比如這篇文章上說的,在上千臺服務(wù)器上執(zhí)行一條命令顾彰,如果依次手動登錄每臺服務(wù)器執(zhí)行命令,估計花三天時間都搞不定筋搏;如果我們寫了一個腳本的話奔脐,估計也就1分鐘之內(nèi)就搞定了吁讨。所以,效率和質(zhì)量才是做事情需要追求的目標(biāo)建丧。

image

好了茶鹃,今天就到這兒吧闭翩,我是冰河,我們下期見~~

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末兑障,一起剝皮案震驚了整個濱河市蕉汪,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌福澡,老刑警劉巖革砸,帶你破解...
    沈念sama閱讀 218,284評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異算利,居然都是意外死亡,警方通過查閱死者的電腦和手機暂吉,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,115評論 3 395
  • 文/潘曉璐 我一進店門慕的,熙熙樓的掌柜王于貴愁眉苦臉地迎上來较锡,“玉大人,你說我怎么就攤上這事低散∪酆牛” “怎么了鸟整?”我有些...
    開封第一講書人閱讀 164,614評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長弟头。 經(jīng)常有香客問我赴恨,道長伴栓,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,671評論 1 293
  • 正文 為了忘掉前任惑淳,我火速辦了婚禮歧焦,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘倚舀。我一直安慰自己叹哭,他們只是感情好痕貌,可當(dāng)我...
    茶點故事閱讀 67,699評論 6 392
  • 文/花漫 我一把揭開白布舵稠。 她就那樣靜靜地躺著哺徊,像睡著了一般乾闰。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上轿钠,一...
    開封第一講書人閱讀 51,562評論 1 305
  • 那天疗垛,我揣著相機與錄音硫朦,去河邊找鬼咬展。 笑死,一個胖子當(dāng)著我的面吹牛破婆,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播妹卿,決...
    沈念sama閱讀 40,309評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼夺克,長吁一口氣:“原來是場噩夢啊……” “哼铺纽!你這毒婦竟也來了哟忍?” 一聲冷哼從身側(cè)響起陷寝,我...
    開封第一講書人閱讀 39,223評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎叛复,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體褐奥,經(jīng)...
    沈念sama閱讀 45,668評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡撬码,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,859評論 3 336
  • 正文 我和宋清朗相戀三年呜笑,在試婚紗的時候發(fā)現(xiàn)自己被綠了蹈垢。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片慷吊。...
    茶點故事閱讀 39,981評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖谤民,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情触创,我是刑警寧澤为牍,帶...
    沈念sama閱讀 35,705評論 5 347
  • 正文 年R本政府宣布,位于F島的核電站抖韩,受9級特大地震影響茂浮,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜顽馋,卻給世界環(huán)境...
    茶點故事閱讀 41,310評論 3 330
  • 文/蒙蒙 一寸谜、第九天 我趴在偏房一處隱蔽的房頂上張望新翎。 院中可真熱鬧地啰,春花似錦讲逛、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,904評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至许赃,卻和暖如春止喷,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背混聊。 一陣腳步聲響...
    開封第一講書人閱讀 33,023評論 1 270
  • 我被黑心中介騙來泰國打工弹谁, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人句喜。 一個月前我還...
    沈念sama閱讀 48,146評論 3 370
  • 正文 我出身青樓预愤,卻偏偏與公主長得像,于是被迫代替她去往敵國和親咳胃。 傳聞我的和親對象是個殘疾皇子植康,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,933評論 2 355

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