1. 程式人生 > >ssh遠端到目標機器執行命令shell指令碼

ssh遠端到目標機器執行命令shell指令碼

  linux下ssh到目標機器首先需要配置免密碼登陸,才能執行如下指令碼

  hostnames伺服器列表檔案

master.hadoop
w1.hadoop
w2.hadoop
w3.hadoop
w4.hadoop
 執行shell指令碼
#!/bin/bash

function usage() {
   echo "Wrong arguments input..."
   echo "Usage: `basename $0` topicName handler[lookup|kill]" >&2
   echo "   eg: `basename $0` service_log lookup"
   exit 1
}

topic_array=("service_log" "service_log_nh" "service_log_agent" "service_log_flow" \
             "service_log_rec" "search_log" "user_trace" "user_trace_internal")
handler_array=("lookup" "kill")


if [ $# -lt 2 ]; then
   usage
fi

topic=$1
handler=$2

## flume agent處理方式判斷 
if echo "${handler_array[@]}" | grep -w "$handler" &>/dev/null; then
   echo "Fount process handler: $handler"
else
   echo "Not found process handler: $handler ...."
   usage
fi

## 判斷是否為需要處理的flume agent名稱
if echo "${topic_array[@]}" | grep -w "$topic" &>/dev/null; then
   echo "Fount flume agent name: $topic"
else
   echo "Not found flume agent name: $topic ...."
   usage
fi


## 根據handler名稱處理flume agent
hosts='hostnames'  # hostname列表檔案

while read line
do
  hostname=$line
  echo "================ $hostname ============="
  case $handler in
       lookup)
         ssh 
[email protected]
$hostname -nq "ps -ef | grep flume | grep -w $topic | grep -v grep | wc -l" ;; kill) ssh [email protected]$hostname -nq "ps -ef | grep flume | grep -w $topic |awk '{print $2}' |xargs kill -15" ;; *) usage ;; esac done < $hosts


相關推薦

ssh遠端目標機器執行命令shell指令碼

  linux下ssh到目標機器首先需要配置免密碼登陸,才能執行如下指令碼   hostnames伺服器列表檔案 master.hadoop w1.hadoop w2.hadoop w3.hadoop

Jmeter中使用SSH外掛,連線遠端linux機器執行命令

一、Why   在雲主機測試中,需要使用SSH協議連線雲主機進行相關操作 在python中使用paramiko庫很好實現,在如果要使用jmeter做效能測試時,怎麼做? 二、解決 既然原生jmeter沒有相關的ssh sampler,那就先按思路看看網上有沒有現成的,沒有再自己寫,googl

Linux遠端拷貝&遠端執行命令shell指令碼

很多時候linux伺服器管理、釋出程式碼等,通常需要兩個工具,一個是遠端拷貝,一個是遠端執行命令,下面介紹兩個比較好用的指令碼,實現這兩個功能。 需要安裝expect,遠端執行命令,centos下直接yum -y install expect,不能yum安裝下

批量複製及執行命令shell指令碼

平時在處理一個或幾個機器執行環境時,一個機器一個機器處理也能接受,但是如果是一批機器,幾十或幾百臺,要是一臺一臺去安裝環境,光是輸入同一的命令,估計你自己都想吐,所有聰明的人會想一些偷懶的辦法,確實可以找到一些省時省力的方法,比如寫一個批量處理shell指令碼,這幾天在處理一批(八九十臺)機器環境,找了一些批

[轉]python3之paramiko模組(基於ssh連線進行遠端登入伺服器執行命令和上傳下載檔案的功能)

轉自:https://www.cnblogs.com/zhangxinqi/p/8372774.html 閱讀目錄 1、paramiko模組介紹 2、paramiko的使用方法 回到頂部 1、pa

Linux 叢集上批量執行同一命令 shell 指令碼

因實際開發需要,在叢集上多個機器上執行相同的命令,比如執行一個指定的指令碼、刪除相同目錄下的檔案(這個得慎重~~)等,組內的成員開發了一個 allscp (可以批量執行scp 命令來同步線上程式碼)非常好用,我自己也寫了

分發系統介紹 expect指令碼遠端登入 expect指令碼遠端執行命令 expect指令碼傳遞引數

1,分發系統介紹。 藉助expect使用shell指令碼在伺服器上批量更改程式碼。 2,expect指令碼遠端登入 。 使用命令“yum install -y expect”安裝expect工具。   自動遠端登入 vim 1.expect  #! /usr/bin/

java本地呼叫cmd,shell命令遠端呼叫Linux執行命令方法總結

有時候經常會碰到需要遠端呼叫Linux或者本地呼叫Linux或者本地呼叫cmd的一些命令,最近小結了一下這幾種用法 本地呼叫cmd命令 @Test public void testCmd()throws Exception{

expect實現自動scp和ssh登錄後執行命令,並向bash提供返回值

ip地址 用戶名 expect 密碼 #!/bin/bash # 全局變量:用戶名,普通用戶密碼,root密碼 loginname="xxxx" userpwd="xxxx" rootpwd="xxxx" # 讀取iplist(逐行存儲IP地址) cat /root/iplist | whi

[一天幾個linux命令] shell指令碼之正則表示式

shell指令碼之正則表示式 原文連結:Linux–shell指令碼之正則表示式 概念及特點 概念 正則表示式是對字串操作的一種邏輯公式,就是用事先定義好的一些特定的字元、及這些特定字元的組合,組成一個"規則字串",這個"規則字串"用來表達對字串的一種過濾邏輯。規定一些特殊語

nohup 命令:後臺執行命令指令碼

轉載出處:AllenW nohup 命令 用途:不掛斷地執行命令。 語法:nohup Command [ Arg … ] [ & ] 描述:nohup 命令執行由 Command 引數和任何相關的 Arg 引數指定的命令,忽略所有結束通話(SIGHUP)訊號。在登出後使用 n

Android-執行命令指令碼

方式一: Runtime.getRuntime().exec(cmd); 方式二: 先是放入一個String陣列,空格用,號代替,將cmd填入.涉及到靜默安裝的,這裡需要root許可權 String[] args = {"pm", "install"

Python 實現遠端伺服器批量執行命令

 paramiko 遠端控制介紹 Python paramiko是一個相當好用的遠端登入模組,採用ssh協議,可以實現linux伺服器的ssh遠端登入。首先來看一個簡單的例子 import paramiko #例項化ssh客戶端 ssh = paramiko.SSHCli

JAVA使用JSch進行SSH連線Linux並執行命令

package utils; import com.jcraft.jsch.ChannelExec; import com.jcraft.jsch.JSch; import com.jcraft.jsch.JSchException; import com.jcraft.

重複執行命令指令碼

工作過程中,為了監控狀態,經常要不斷地重複執行某個命令,因此寫了個指令碼來簡化操作#! /bin/bash # filename:redo.sh #usage: redo.sh [-d delaytime] [-c count] command #預設間隔時間為15s,無限迴

定時執行Linux shell指令碼實現SFTP定時上傳下載檔案

之所以寫這篇文章,是因為網上很多有關文章亂轉載,crontab 命令的語法都是錯的,都直接轉了,雖然很簡單,但也會浪費時間啊,尤其是對於第一次寫的同學來說。轉入正題一:定時任務(大部分文章出錯的就是這個部分)1.執行命令:crontab -e2.按 i 編輯檔案,新增命令如下

CheungSSH比Ansible更優秀的Linux SSH批量管理伺服器 執行命令上傳下載自動化運維工具

安裝部署:   第一步: [ root ~]# yum install -y gcc   第二步:[ root ~]#  yum install -y python-devel   第三步 到官網下載pycrypto模組: wget --no-check-certificate https://pypi.py

java遠端呼叫linux的命令或者指令碼

   Java通過SSH2協議執行遠端Shell指令碼(ganymed-ssh2-build210.jar)   使用步驟如下: 1.導包 官網下載: http://www.ganymed.ethz.ch/ssh2/ maven座標: [java] view plain copy print?

Python實現ssh批量登入並執行命令

區域網內有一百多臺電腦,全部都是linux作業系統,所有電腦配置相同,系統完全相同(包括使用者名稱和密碼),ip地址是自動分配的。現在有個任務是在這些電腦上執行某些命令,者說進行某些操作,比如安裝某些軟體,拷貝某些檔案,批量關機等。如果一臺一臺得手工去操作,費時又費力,

分散式叢集批量執行命令sh指令碼

#!/bin/bash echo -e command template as follow: "\n sh ~/sh/dist_batch_exec.sh [--background] \"date