<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>平台运维 on LeoChu Space</title>
    <link>https://leochu.work/blog/tags/%E5%B9%B3%E5%8F%B0%E8%BF%90%E7%BB%B4/</link>
    <description>Recent content in 平台运维 on LeoChu Space</description>
    <generator>Hugo</generator>
    <language>zh-cn</language>
    <lastBuildDate>Thu, 02 Apr 2026 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://leochu.work/blog/tags/%E5%B9%B3%E5%8F%B0%E8%BF%90%E7%BB%B4/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>集群常用脚本</title>
      <link>https://leochu.work/blog/tech/engineering/%E9%9B%86%E7%BE%A4%E5%B8%B8%E7%94%A8%E8%84%9A%E6%9C%AC/</link>
      <pubDate>Thu, 02 Apr 2026 00:00:00 +0000</pubDate>
      <guid>https://leochu.work/blog/tech/engineering/%E9%9B%86%E7%BE%A4%E5%B8%B8%E7%94%A8%E8%84%9A%E6%9C%AC/</guid>
      <description>&lt;p&gt;多重执行xcall.sh&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;#!/bin/bash

# 遍历所有节点（集群主机列表）
for i in cdhmaster01 cdhmaster02 cdhmaster03 cdhnode01 cdhnode02 cdhnode03
do
  # 打印当前正在操作的主机，方便区分输出
  echo &amp;#34;--------- $i ----------&amp;#34;

  # 通过 ssh 在远程主机执行传入的命令
  # &amp;#34;$*&amp;#34; 表示把所有参数当作一个整体传过去
  # 例如：./xcall.sh pwd
  # 实际执行：ssh cdhmaster01 &amp;#34;pwd&amp;#34;
  ssh $i &amp;#34;$*&amp;#34;
done
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;集群分发xsync.sh&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;#!/bin/bash

if [ $# -eq 0 ]; then
  echo &amp;#34;Usage: $0  [more files_or_dirs]&amp;#34;
  exit 1
fi

hosts=(cdhmaster01 cdhmaster02 cdhmaster03 cdhnode01 cdhnode02 cdhnode03)
user=$(whoami)

for src in &amp;#34;$@&amp;#34;
do
  if [ ! -e &amp;#34;$src&amp;#34; ]; then
    echo &amp;#34;Not found: $src&amp;#34;
    continue
  fi

  abs_src=$(readlink -f &amp;#34;$src&amp;#34;)
  name=$(basename &amp;#34;$abs_src&amp;#34;)
  parent=$(dirname &amp;#34;$abs_src&amp;#34;)

  for host in &amp;#34;${hosts[@]}&amp;#34;
  do
    echo &amp;#34;===== $host =====&amp;#34;

    ssh &amp;#34;$host&amp;#34; &amp;#34;mkdir -p &amp;#39;$parent&amp;#39;&amp;#34;

    if [ -d &amp;#34;$abs_src&amp;#34; ]; then
      rsync -av &amp;#34;$abs_src&amp;#34; &amp;#34;$user@$host:$parent/&amp;#34;
    else
      rsync -av &amp;#34;$abs_src&amp;#34; &amp;#34;$user@$host:$parent/&amp;#34;
    fi
  done
done
&lt;/code&gt;&lt;/pre&gt;</description>
    </item>
  </channel>
</rss>
