当前位置: 首页 > wzjs >正文

南宁网站制作网络公司湛江专业建站推荐

南宁网站制作网络公司,湛江专业建站推荐,wordpress 修改header,武昌便宜做网站DolphinScheduler中有很多经典的Linux shell用法,掌握好了,可以快速提升自己的shell编写能力,如下为对其安装包下的 scp-hosts.sh 脚本的具体解读。 DS版本:3.1.4 scp-hosts.sh 代码清单: workDirdirname $0 workDi…

DolphinScheduler中有很多经典的Linux shell用法,掌握好了,可以快速提升自己的shell编写能力,如下为对其安装包下的 scp-hosts.sh 脚本的具体解读。

DS版本:3.1.4

scp-hosts.sh 代码清单:

workDir=`dirname $0`
workDir=`cd ${workDir};pwd`source ${workDir}/env/install_env.shworkersGroup=(${workers//,/ })
for workerGroup in ${workersGroup[@]}
doecho $workerGroup;worker=`echo $workerGroup|awk -F':' '{print $1}'`group=`echo $workerGroup|awk -F':' '{print $2}'`workerNames+=($worker)groupNames+=(${group:-default})
donehostsArr=(${ips//,/ })
for host in ${hostsArr[@]}
doif ! ssh -o StrictHostKeyChecking=no -p $sshPort $host test -e $installPath; thenssh -o StrictHostKeyChecking=no -p $sshPort $host "sudo mkdir -p $installPath; sudo chown -R $deployUser:$deployUser $installPath"fiecho "scp dirs to $host/$installPath starting"for i in ${!workerNames[@]}; doif [[ ${workerNames[$i]} == $host ]]; thenworkerIndex=$ibreakfidone# set worker groups in application.yaml[[ -n ${workerIndex} ]] && sed -i "s/- default/- ${groupNames[$workerIndex]}/" $workDir/../worker-server/conf/application.yamlfor dsDir in bin master-server worker-server alert-server api-server ui toolsdoecho "start to scp $dsDir to $host/$installPath"# Use quiet mode to reduce command line outputscp -q -P $sshPort -r $workDir/../$dsDir  $host:$installPathdone# restore worker groups to default[[ -n ${workerIndex} ]] && sed -i "s/- ${groupNames[$workerIndex]}/- default/" $workDir/../worker-server/conf/application.yamlecho "scp dirs to $host/$installPath complete"
done

以下是对这段DolphinScheduler脚本安装代码的逐行解释:

1. 获取脚本所在目录

workDir=`dirname $0`
workDir=`cd ${workDir};pwd`
  • dirname $0$0 代表当前执行的脚本文件名,dirname 命令用于提取文件路径中的目录部分。这行代码获取了当前脚本所在的目录。
  • cd ${workDir};pwd:进入该目录,然后使用 pwd 命令获取该目录的绝对路径,并将其赋值给 workDir 变量。

2. 加载安装环境配置文件

source ${workDir}/env/install_env.sh
  • source 命令用于在当前 shell 环境中执行指定的脚本文件。这里加载了 install_env.sh 文件,该文件通常包含了安装过程中需要使用的环境变量等配置信息。

3. 解析 workers 变量并存储 worker 和 group 信息

workersGroup=(${workers//,/ })
for workerGroup in ${workersGroup[@]}
doecho $workerGroup;worker=`echo $workerGroup|awk -F':' '{print $1}'`group=`echo $workerGroup|awk -F':' '{print $2}'`workerNames+=($worker)groupNames+=(${group:-default})
done
  • workersGroup=(${workers//,/ }):将 workers 变量中的逗号替换为空格,然后将结果存储在数组 workersGroup 中。workers 变量可能是一个以逗号分隔的字符串,每个元素格式为 worker:group
  • for workerGroup in ${workersGroup[@]}:遍历 workersGroup 数组中的每个元素。
  • worker=echo $workerGroup|awk -F’:’ ‘{print $1}’``:使用 awk 命令以冒号为分隔符,提取每个元素的第一部分(即 worker 名称),并将其赋值给 worker 变量。
  • group=echo $workerGroup|awk -F’:’ ‘{print $2}’``:同理,提取每个元素的第二部分(即 group 名称),并将其赋值给 group 变量。
  • workerNames+=($worker):将提取的 worker 名称添加到 workerNames 数组中。
  • groupNames+=(${group:-default}):将提取的 group 名称添加到 groupNames 数组中,如果 group 为空,则使用默认值 default

4. 解析 ips 变量并在远程主机上进行操作

hostsArr=(${ips//,/ })
for host in ${hostsArr[@]}
do
  • hostsArr=(${ips//,/ }):将 ips 变量中的逗号替换为空格,然后将结果存储在数组 hostsArr 中。ips 变量可能是一个以逗号分隔的远程主机 IP 地址或主机名列表。
  • for host in ${hostsArr[@]}:遍历 hostsArr 数组中的每个主机。

5. 检查远程主机上的安装路径是否存在,若不存在则创建

  if ! ssh -o StrictHostKeyChecking=no -p $sshPort $host test -e $installPath; thenssh -o StrictHostKeyChecking=no -p $sshPort $host "sudo mkdir -p $installPath; sudo chown -R $deployUser:$deployUser $installPath"fi
  • ssh -o StrictHostKeyChecking=no -p $sshPort $host test -e $installPath:使用 ssh 命令连接到远程主机,检查 $installPath 目录是否存在。-o StrictHostKeyChecking=no 选项用于跳过 SSH 密钥验证,-p $sshPort 指定 SSH 端口号。
  • 如果目录不存在,则执行 sudo mkdir -p $installPath; sudo chown -R $deployUser:$deployUser $installPath 命令,在远程主机上创建该目录,并将其所有权赋予 $deployUser 用户和组。

6. 查找当前主机对应的 worker 索引

  echo "scp dirs to $host/$installPath starting"for i in ${!workerNames[@]}; doif [[ ${workerNames[$i]} == $host ]]; thenworkerIndex=$ibreakfidone
  • echo "scp dirs to $host/$installPath starting":输出提示信息,表示开始将目录复制到远程主机的安装路径。
  • for i in ${!workerNames[@]}:遍历 workerNames 数组的索引。
  • if [[ ${workerNames[$i]} == $host ]]:检查当前索引对应的 worker 名称是否与当前主机名相同,如果相同,则将该索引赋值给 workerIndex 变量,并跳出循环。

7. 修改 worker-server 配置文件中的 group 信息

  [[ -n ${workerIndex} ]] && sed -i "s/- default/- ${groupNames[$workerIndex]}/" $workDir/../worker-server/conf/application.yaml
  • [[ -n ${workerIndex} ]]:检查 workerIndex 变量是否为空。
  • 如果不为空,则使用 sed 命令在 $workDir/../worker-server/conf/application.yaml 文件中,将 - default 替换为 - ${groupNames[$workerIndex]}

8. 将目录复制到远程主机

  for dsDir in bin master-server worker-server alert-server api-server ui toolsdoecho "start to scp $dsDir to $host/$installPath"# Use quiet mode to reduce command line outputscp -q -P $sshPort -r $workDir/../$dsDir  $host:$installPathdone
  • for dsDir in bin master-server worker-server alert-server api-server ui tools:遍历需要复制的目录列表。
  • scp -q -P $sshPort -r $workDir/../$dsDir $host:$installPath:使用 scp 命令将本地的 $dsDir 目录递归复制到远程主机的 $installPath 目录下。-q 选项用于安静模式,减少命令行输出。

9. 恢复 worker-server 配置文件中的 group 信息

  [[ -n ${workerIndex} ]] && sed -i "s/- ${groupNames[$workerIndex]}/- default/" $workDir/../worker-server/conf/application.yaml
  • 与步骤 7 类似,将 application.yaml 文件中的 - ${groupNames[$workerIndex]} 恢复为 - default

10. 输出复制完成提示信息

  echo "scp dirs to $host/$installPath complete"
done
  • echo "scp dirs to $host/$installPath complete":输出提示信息,表示将目录复制到远程主机的安装路径完成。

综上所述,这段脚本的主要功能是将 DolphinScheduler 的相关目录复制到多个远程主机的指定安装路径,并根据配置信息修改 worker-server 的配置文件。

http://www.dtcms.com/wzjs/587687.html

相关文章:

  • 东莞网站建设php方案专业seo整站优化
  • 海口网站建设流程网站开发常用的开发工具
  • vs2015 建设微网站网站主色调有几种
  • 亚马逊欧洲站wordpress服务器安装教程
  • 下载免费网站模板下载苏州企业如何建网站
  • 做影评的网站模版娱乐类网站
  • 网站建设架构 服务器荣耀正品查询入口
  • 网站建设语音做搜狗pc网站快速
  • 淄博百度网站制作wordpress the id
  • 网站后台卸载cmsdede甘肃省住房和城乡建设厅注册中心网站
  • 网站开发的安全策略中牟网站建设
  • 网站互点都是怎么做的网站上传的工具
  • 一键搭建网站windowswordpress 图片特效插件下载
  • AAP网站开发需要多少钱长沙企业网站排名
  • 广园路建设公司网站中国能源建设集团有限公司官网
  • 世界杯消息哪个门户网站做的好无锡网站建设价格最优
  • dw课设做网站网站推广优化服务
  • wap网站制作软件网站推广营销收费
  • 网站建设企业模板下载搜索引擎优化与关键词的关系
  • 防止网站被采集a公司与企业k签订了建设k企业
  • 设计师素材网站开发家政保洁公司网站建设方案
  • 一级a做爰片手机电影网站wordpress js手工合并
  • 网站建设 案例租赁公司网站源码
  • 杭州网站设计推荐柚米郑州网站建设怎样
  • 如何做一个手机网站机械网站案例分析
  • 四川建设人员数据网站从珠海回来都变黄码了
  • 学校网站的建设方案wordpress收费下载资源插件
  • 如何使用云服务建设网站免费网站如何做推广
  • 宝安公司免费网站建设首都之窗
  • 百度一下百度一下你就知道推广网站排名优化seo教程