久久精品国产亚洲怮怮_奇米网777色在线精品_亚洲色中文字幕制服丝袜_久久精品人人做人人看

始創(chuàng)于2000年 股票代碼:831685
咨詢熱線:0371-60135900 注冊有禮 登錄
  • 掛牌上市企業(yè)
  • 60秒人工響應
  • 99.99%連通率
  • 7*24h人工
  • 故障100倍補償
全部產(chǎn)品
您的位置: 網(wǎng)站首頁 > 幫助中心>文章內(nèi)容

批量在遠程執(zhí)行命令 (1)

發(fā)布時間:  2012/7/23 19:15:07

對于運維來說,同時管理多臺機器是很辛苦的事情,特別是CDN運維需要同時重新啟動1000臺機器的apache的話或者獲取所有機器的狀態(tài),靠人工一個個上遠程機器上去執(zhí)行非常費勁,為此我寫了一個在一臺機器上批量在多臺機器上執(zhí)行shell命令的小程序。

這個程序是順序在各個遠程機器上執(zhí)行命令,并且把遠程執(zhí)行的輸出打印出來。

雖然scp命令也可以執(zhí)行遠程命令,但是這個程序還有一個好處就是有超時時間(30秒),當某條命令執(zhí)行超過30秒后,這個程序會繼續(xù)執(zhí)行下一臺機器,而遠程的機器上的命令還會繼續(xù)執(zhí)行完畢。直接使用scp執(zhí)行遠程命令的話必須等命令執(zhí)行完畢才能退出。

其中用到了expect:
  Expect在這個程序里就是用來幫助自動輸入scp的密碼,Expect主要用于把需要人工交互的程序變?yōu)槌绦蜃詣踊瓿,這個對于運維批量部署系統(tǒng),批量無人值守安裝,批量執(zhí)行命令,批量上傳下載
 現(xiàn)代的Shell對程序提供了最小限度的控制(開始,停止,等等),而把交互的特性留給了用戶。 這意味著有些程序,你不能非交互的運行,比如說passwd。 有一些程序可以非交互的運行,但在很大程度上喪失了靈活性,比如說fsck。這表明Unix的工具構(gòu)造邏輯開始出現(xiàn)問題。Expect恰恰填補了其中的一些裂痕,解決了在Unix環(huán)境中長期存在著的一些問題。

 
  Expect使用Tcl作為語言核心。不僅如此,不管程序是交互和還是非交互的,Expect都能運用。

 
注意:這個小工具一次只能執(zhí)行一行shell語句,若是要執(zhí)行多行語句的話,先把這些語句寫到一個文件里(例如exe.sh),用我之前寫的批量上傳工具把exe.sh上傳到指定目錄(例如/tmp),然后再用這個工具執(zhí)行"sh /tmp/exe.sh",即可

1.multi_scp_shell.sh

 

#!/bin/bash  #author: yifangyou  #create time:2011-05-17  #用來通過scp在目標機器批量執(zhí)行命令  #配置文件格式:  #ssh_hosts=("1.1.1.1" "2.2.2.2")  #ssh_ports=("22" "22") 這個可以缺省,缺省值為22,或者個數(shù)比ssh_hosts少時,使用缺省值  #ssh_users=("root" "root") 這個可以缺省,缺省值為root,,或者個數(shù)比ssh_hosts少時,使用缺省值  #ssh_passwords=("323" "222") 這個可以缺省,缺省的話需要從命令行輸入,或者個數(shù)比ssh_hosts少時,使用命令行輸入  #執(zhí)行:sh multi_scp_shell.sh conf_file_path 'cmd' if [ -z "$2" ]  then echo "sh multi_scp_shell.sh conf_file_path 'cmd'";  exit;  fi  default_ssh_user="root" default_ssh_port="22";  #upload shell script file path  scp_upload=scp_upload.sh  #configure file path  conf_file=$1  #shell command  scp_cmd=$2  #判斷conf_file配置文件是存在  if [ ! -e "$conf_file" ]  then echo "$conf_file is not exists";  exit;  fi  #read configure file  source $conf_file  #若是沒有在配置文件里提供密碼,則在命令行輸入  if [ "${#ssh_passwords[@]}" = "0" ] || [ "${#ssh_passwords[@]}" -lt "${#ssh_hosts[@]}" ]  then read -p "please input password:" -s default_ssh_password  fi  success_hosts="";  fail_hosts="";  for((i=0;i<${#ssh_hosts[@]};i++))  do  #remote ssh host  ssh_host=${ssh_hosts[$i]};  if [ "$ssh_host" != "" ]  then #remote ssh port  ssh_port=${ssh_ports[$i]};  if [ "$ssh_port" = "" ]  then ssh_port=$default_ssh_port; #use default value  fi  #remote ssh user ssh_user=${ssh_users[$i]};  if [ "$ssh_user" = "" ]  then ssh_user=$default_ssh_user; #use default value  fi  #remote ssh password ssh_password=${ssh_passwords[$i]};  if [

億恩科技地址(ADD):鄭州市黃河路129號天一大廈608室 郵編(ZIP):450008 傳真(FAX):0371-60123888
   聯(lián)系:億恩小凡
   QQ:89317007
   電話:0371-63322206


本文出自:億恩科技【prubsntakaful.com】

服務器租用/服務器托管中國五強!虛擬主機域名注冊頂級提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM]

  • 您可能在找
  • 億恩北京公司:
  • 經(jīng)營性ICP/ISP證:京B2-20150015
  • 億恩鄭州公司:
  • 經(jīng)營性ICP/ISP/IDC證:豫B1.B2-20060070
  • 億恩南昌公司:
  • 經(jīng)營性ICP/ISP證:贛B2-20080012
  • 服務器/云主機 24小時售后服務電話:0371-60135900
  • 虛擬主機/智能建站 24小時售后服務電話:0371-60135900
  • 專注服務器托管17年
    掃掃關(guān)注-微信公眾號
    0371-60135900
    Copyright© 1999-2019 ENKJ All Rights Reserved 億恩科技 版權(quán)所有  地址:鄭州市高新區(qū)翠竹街1號總部企業(yè)基地億恩大廈  法律顧問:河南亞太人律師事務所郝建鋒、杜慧月律師   京公網(wǎng)安備41019702002023號
      0
     
     
     
     

    0371-60135900
    7*24小時客服服務熱線