佳木斯湛栽影视文化发展公司

主頁(yè) > 知識(shí)庫(kù) > shell腳本實(shí)現(xiàn)同時(shí)多臺(tái)遠(yuǎn)程主機(jī)執(zhí)行命令的代碼分享

shell腳本實(shí)現(xiàn)同時(shí)多臺(tái)遠(yuǎn)程主機(jī)執(zhí)行命令的代碼分享

熱門(mén)標(biāo)簽:Linux服務(wù)器 百度競(jìng)價(jià)排名 地方門(mén)戶(hù)網(wǎng)站 呼叫中心市場(chǎng)需求 網(wǎng)站排名優(yōu)化 鐵路電話(huà)系統(tǒng) AI電銷(xiāo) 服務(wù)外包

實(shí)現(xiàn)需求

在對(duì)單臺(tái)機(jī)器做操作時(shí)我們會(huì)用“ssh ip”的方式登錄到機(jī)器上,可以寫(xiě)這樣一個(gè)工具vssh ip1,ip2,…ipn 來(lái)模擬登錄到n 臺(tái)服務(wù)器,登錄后所有操作相當(dāng)于同時(shí)對(duì)n 臺(tái)服務(wù)器生效。

實(shí)現(xiàn)方法

首頁(yè)要確??梢酝ㄟ^(guò)本地公鑰無(wú)密碼登錄遠(yuǎn)程主機(jī):

ssh-copy-id [-i [identity_file]] [user@]machine

shell腳本

#!/bin/bash
# -------------------------------------------------------------------------------
# Author:   Loya.Chen
# Description: Execute commands on multiple remote hosts at the same time.
# -------------------------------------------------------------------------------
set -e
Usage() {
  echo "Usage: $0 host1 host2 ... 'command'"
}
if [ $# -lt 2 ] ;then
  Usage
  exit 0
else
  cmd=${!#}
fi
logfile=$(mktemp)
i=1
success=0
failed=0
for ip in $@;do 
  if [ $i -eq $# ];then
    break
  fi
  ssh $ip $cmd > $logfile
  if [ $? -eq 0 ];then
    #((success++))
    success=$(($success+1))
    echo -e "\n\033[32m$ip | success \033[0m \n"
    cat $logfile
  else
    ((failed++))
    echo -e "\n\033[31m$ip | failed \033[0m\n "
    cat $logfile
  fi
  ((i++))
done
echo -e '\n-------------------------'
echo -e "\033[32msuccess: $success | failed: $failed \033[0m"
echo '-------------------------'

示例

$ bash vssh 10.0.0.11 10.0.0.12 'free -m'
10.0.0.11 | success 
       total    used    free   shared  buffers   cached
Mem:     2871    156    2715     0     8     36
-/+ buffers/cache:    111    2760
Swap:     2047     0    2047
10.0.0.12 | success 
       total    used    free   shared  buffers   cached
Mem:      980    615    365     0     12     69
-/+ buffers/cache:    533    447
Swap:     2047     0    2047
-------------------------
success: 2 | failed: 0 
-------------------------

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來(lái)一定的幫助,如果有疑問(wèn)大家可以留言交流,謝謝大家對(duì)腳本之家的支持。

您可能感興趣的文章:
  • Shell命令行中特殊字符與其轉(zhuǎn)義詳解(去除特殊含義)
  • linux shell發(fā)送Email郵件的方法詳解
  • 詳解shell 遍歷文件夾內(nèi)所有文件并打印絕對(duì)路徑
  • Linux shell 之 提取文件名和目錄名的一些方法總結(jié)
  • Linux shell常用的73條命令總結(jié)
  • shell腳本報(bào)錯(cuò):"[: =: unary operator expected"解決辦法

標(biāo)簽:仙桃 衡水 崇左 湖南 蘭州 銅川 湘潭 黃山

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《shell腳本實(shí)現(xiàn)同時(shí)多臺(tái)遠(yuǎn)程主機(jī)執(zhí)行命令的代碼分享》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話(huà)咨詢(xún)

    • 400-1100-266
    南宁市| 肥乡县| 内乡县| 甘谷县| 遵义县| 南宁市| 封开县| 新干县| 黑山县| 浪卡子县| 青海省| 新邵县| 娄烦县| 嘉禾县| 洛隆县| 临猗县| 隆安县| 盐亭县| 都兰县| 金昌市| 呼和浩特市| 梅州市| 咸丰县| 望城县| 益阳市| 蓬莱市| 池州市| 长宁区| 南开区| 思茅市| 房山区| 鲁甸县| 临清市| 桦南县| 和顺县| 噶尔县| 汪清县| 手机| 五常市| 西充县| 延吉市|