shell編程之遠程開啓多個機器的ElasticSearch

一、

#ES_HNS='vmslave1 vmslave2'
#!/bin/bash
HOSTNAME=`hostname`
ES_HNS='vbserver vmslave1 vmslave2'
THIS_HN=$HOSTNAME

existOnErr(){
  if [ 0 -ne $? ]
  then
   echo '異常: '$1
   exit 0
  fi
}

for HN in $ES_HNS
do
  if [ $THIS_HN != $HN ]
  then
### 因为是普通用户,所以只能切到 ~ ( ~等于/home/用户目录),不可以
cd /home/hewenyan/auto_es_master_slave ./remote.sh $HN > ~/eslog.log 2>&1 & ## 后台进行远程 existOnErr '文件 ./remote.sh 不存在' else cd /opt/bigdata/elk/es622/bin/ existOnErr '目錄/opt/bigdata/elk/es622/bin不存在' ./elasticsearch > ~/eslog.log 2>&1 & ## 后台打开es existOnErr $THIS_HN' ./elasticsearch 啓動失敗' fi done

二、

#!/bin/bash

CMD='ssh henry@'$1
$CMD > /dev/null 2>&1 <<eeooff
    cd /opt/bigdata/es622/bin
    ./elasticsearch
    exit 0  ## 加0表示正常退出,可以继续进行下个操作,否则可能不会继续走
eeooff
echo done!

or

#!/bin/bash

CMD='ssh hewenyan@'$1
#$CMD > ~/testlog.txt 2> ~/testerr.txt <<eeooff
$CMD 1> ~/testlog.txt 2> ~/testerr.txt<<eeooff
  cd /opt/bigdata/elk/es622/bin
  ./elasticsearch
  exit
eeooff
原文地址:https://www.cnblogs.com/sabertobih/p/13472799.html