溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何實現(xiàn)可在任意服務器上執(zhí)行命令

發(fā)布時間:2021-12-28 15:50:23 來源:億速云 閱讀:164 作者:小新 欄目:大數(shù)據(jù)

這篇文章給大家分享的是有關(guān)如何實現(xiàn)可在任意服務器上執(zhí)行命令的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

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

如何實現(xiàn)可在任意服務器上執(zhí)行命令  

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

說實話,我在維護上千臺服務器集群的時候,并沒有去依次手動登錄每臺服務器,為啥?沒錯,就是因為我懶?。∥覒械娜サ卿?,并且依次登錄那么多臺服務器,整個人都會崩潰的。

如何實現(xiàn)可在任意服務器上執(zhí)行命令  

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

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

為了方便小伙伴們理解,這里我們就假設集群中存在1024臺服務器,每臺服務器的主機名為binghe1~binghe1024。每臺服務器可以通過主機名進行通信,接下來,我寫了一個名稱為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的服務器上執(zhí)行,也就是說,使用這個腳本我們能夠做到:同時在集群的服務器上執(zhí)行相同的命令。

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

chmod a+x ./distribute_command.sh
 

使用格式如下:

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

使用示例

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

感謝各位的閱讀!關(guān)于“如何實現(xiàn)可在任意服務器上執(zhí)行命令”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI