scp-hosts.sh 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. #!/bin/sh
  2. #
  3. # Licensed to the Apache Software Foundation (ASF) under one or more
  4. # contributor license agreements. See the NOTICE file distributed with
  5. # this work for additional information regarding copyright ownership.
  6. # The ASF licenses this file to You under the Apache License, Version 2.0
  7. # (the "License"); you may not use this file except in compliance with
  8. # the License. You may obtain a copy of the License at
  9. #
  10. # http://www.apache.org/licenses/LICENSE-2.0
  11. #
  12. # Unless required by applicable law or agreed to in writing, software
  13. # distributed under the License is distributed on an "AS IS" BASIS,
  14. # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  15. # See the License for the specific language governing permissions and
  16. # limitations under the License.
  17. #
  18. workDir=`dirname $0`
  19. workDir=`cd ${workDir};pwd`
  20. source $workDir/../conf/config/install_config.conf
  21. txt=""
  22. if [[ "$OSTYPE" == "darwin"* ]]; then
  23. # Mac OSX
  24. txt="''"
  25. fi
  26. declare -A workersGroupMap=()
  27. workersGroup=(${workers//,/ })
  28. for workerGroup in ${workersGroup[@]}
  29. do
  30. echo $workerGroup;
  31. worker=`echo $workerGroup|awk -F':' '{print $1}'`
  32. groupName=`echo $workerGroup|awk -F':' '{print $2}'`
  33. workersGroupMap+=([$worker]=$groupName)
  34. done
  35. hostsArr=(${ips//,/ })
  36. for host in ${hostsArr[@]}
  37. do
  38. if ! ssh -p $sshPort $host test -e $installPath; then
  39. ssh -p $sshPort $host "sudo mkdir -p $installPath; sudo chown -R $deployUser:$deployUser $installPath"
  40. fi
  41. echo "scp dirs to $host/$installPath starting"
  42. ssh -p $sshPort $host "cd $installPath/; rm -rf bin/ conf/ lib/ script/ sql/ ui/"
  43. for dsDir in bin conf lib script sql ui install.sh
  44. do
  45. # if worker in workersGroupMap
  46. if [[ "${workersGroupMap[${host}]}" ]] && [[ "${dsDir}" == "conf" ]]; then
  47. sed -i ${txt} "s#worker.group.*#worker.group=${workersGroupMap[${host}]}#g" ${dsDir}/worker.properties
  48. fi
  49. echo "start to scp $dsDir to $host/$installPath"
  50. scp -P $sshPort -r $workDir/../$dsDir $host:$installPath
  51. done
  52. echo "scp dirs to $host/$installPath complete"
  53. done