scp-hosts.sh 2.2 KB
Newer Older
D
dailidong 已提交
1
#!/bin/sh
B
bao liang 已提交
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License.  You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
18 19 20 21 22

workDir=`dirname $0`
workDir=`cd ${workDir};pwd`
source $workDir/../conf/config/install_config.conf

G
gaojun2048 已提交
23 24 25 26 27 28 29 30 31 32 33 34 35 36
txt=""
if [[ "$OSTYPE" == "darwin"* ]]; then
    # Mac OSX
    txt="''"
fi

declare -A workersGroupMap=()

workersGroup=(${workers//,/ })
for workerGroup in ${workersGroup[@]}
do
  echo $workerGroup;
  worker=`echo $workerGroup|awk -F':' '{print $1}'`
  groupName=`echo $workerGroup|awk -F':' '{print $2}'`
37 38 39 40 41 42
  if [ -z ${workersGroupMap[$worker]} ];then
      workersGroupMap+=([$worker]=$groupName)
  else
      finalGroupName="${workersGroupMap[$worker]},$groupName"
      workersGroupMap[$worker]=$finalGroupName
  fi
G
gaojun2048 已提交
43 44 45
done


46 47 48 49
hostsArr=(${ips//,/ })
for host in ${hostsArr[@]}
do

G
gaojun2048 已提交
50 51 52
  if ! ssh -p $sshPort $host test -e $installPath; then
    ssh -p $sshPort $host "sudo mkdir -p $installPath; sudo chown -R $deployUser:$deployUser $installPath"
  fi
53

G
gaojun2048 已提交
54
  echo "scp dirs to $host/$installPath starting"
L
lgcareer 已提交
55
	ssh -p $sshPort $host  "cd $installPath/; rm -rf bin/ conf/ lib/ script/ sql/ ui/"
G
gaojun2048 已提交
56 57 58 59 60

  for dsDir in bin conf lib script sql ui install.sh
  do
    # if worker in workersGroupMap
    if [[ "${workersGroupMap[${host}]}" ]] && [[ "${dsDir}" == "conf" ]]; then
61
      sed -i ${txt} "s#worker.groups.*#worker.groups=${workersGroupMap[${host}]}#g" ${dsDir}/worker.properties
G
gaojun2048 已提交
62 63 64 65 66 67 68 69
    fi

    echo "start to scp $dsDir to $host/$installPath"
    scp -P $sshPort -r $workDir/../$dsDir  $host:$installPath
  done

  echo "scp dirs to $host/$installPath complete"
done