在多台服务器上运行相同命令(二)、clush

    • 介绍
    • 安装
    • 配置
      • 互信认证
      • 参数含义
      • 基本使用
      • 节点组
      • 拷贝文件

介绍

Clush(Cluster Shell)是一个用于管理和执行集群操作的工具,它允许你在多台远程主机上同时执行命令,以便批量管理服务器。Clush 提供了一种简单而强大的方式来管理大规模的计算集群或服务器群。以下是 Clush 的一些关键特性和用法:

  • 批量执行命令:Clush 可以同时在多台主机上执行相同的命令,无需手动登录到每个主机。
  • 并行操作:Clush 具有并行执行命令的功能,可以提高效率并减少等待时间。
  • 主机分组:你可以将主机分组,以便在特定组中执行命令。这对于对不同用途或角色的主机执行不同命令很有用。
  • 输出聚合:Clush 可以收集和汇总来自所有主机的输出,使你可以更轻松地查看和分析结果。
  • 配置文件:Clush 使用配置文件来定义主机列表和分组,以及其他参数,使配置变得简单。
  • 支持多种连接方式:Clush 支持 SSH 和其他连接协议,可以根据需要进行配置。
  • 可扩展性:Clush 可以通过插件进行扩展,以满足更多需求。

地址:https://github.com/cea-hpc/clustershell/

安装

centos上直接yum install clustershell
在多台服务器上运行相同命令(二)、clush_第1张图片

在多台服务器上运行相同命令(二)、clush_第2张图片

配置

安装完成后,你可以使用 clush 命令来执行命令在多个远程主机上运行。为了使 Clush 在远程主机上执行命令而无需手动输入密码或进行其他身份验证,最好建立 SSH 互信。

互信认证

为了建立 SSH 互信,你需要执行以下步骤:
1、生成 SSH 密钥对: 在执行 Clush 之前,确保在本地主机上生成 SSH 密钥对。已有则可以跳过这一步,你可以使用以下命令生成密钥对:

ssh-keygen -t rsa

这将生成一个公钥文件(默认为 ~/.ssh/id_rsa.pub)和一个私钥文件(默认为 ~/.ssh/id_rsa)

2、将公钥复制到远程主机: 使用 ssh-copy-id 命令将公钥复制到远程主机。例如:

ssh-copy-id user@remote_host

这将把你的公钥添加到远程主机的 ~/.ssh/authorized_keys 文件中,允许你在不输入密码的情况下通过 SSH 连接到该主机。

3、测试 SSH 连接: 确保你可以通过 SSH 连接到远程主机,而不需要输入密码:

ssh user@remote_host

如果可以无需密码登录,互信已成功建立。

参数含义

选项
-w 后面跟主机节点,多个主机中间用英文逗号隔开
-x 表示去掉某个节点进行操作。后面跟主机节点,多个主机中间用英文逗号隔开
-g 后面指定设置的组
-a 表示所有的组
-X 表示去掉某个组进行操作,多个组之间用英文逗号隔开
-b 相同输出结果合并

基本使用

clush -w host1,host2 "ls -l /tmp"

这将在 host1 和 host2 上运行 ls -l /tmp命令。例如:
在多台服务器上运行相同命令(二)、clush_第3张图片

节点组

节点数少且使用次数少的时候,可以直接在命令里写,节点多的时候可以将其配置为节点组,使用不同组的方式来管理主机。

vim /etc/clushershell/groups

写入格式: 组名:节点1 节点2 节点3

假设我们配置了一个db组,包含192.168.96.54,192.168.96.60两个节点:
在多台服务器上运行相同命令(二)、clush_第4张图片
执行
在多台服务器上运行相同命令(二)、clush_第5张图片

再加一个组:
在多台服务器上运行相同命令(二)、clush_第6张图片
在多台服务器上运行相同命令(二)、clush_第7张图片

拷贝文件

从本地拷贝到远程服务器组:

clush -bg web --copy /root/1.sh --dest /tmp/

在多台服务器上运行相同命令(二)、clush_第8张图片

从远程服务器拷贝到本地:

clush -bg web-rcopy /tmp/1.sh --dest /tmp/

在多台服务器上运行相同命令(二)、clush_第9张图片
注:在多台不同服务器上向本地拷贝回同一个名称的文件,会自动在文件名后面加上服务器ip以区分这些同名文件。

你可能感兴趣的:(服务器,运维,clush,clushshell)