Linux 集群管理工具(ClusterShell、PSSH)

发布时间 2023-09-13 17:34:34作者: demoduan

Linux 集群管理工具是用于管理多台 Linux 服务器或计算机的工具,可以通过它们来执行命令、分发文件、监控系统等

两个常用的 Linux 集群管理工具是 ClusterShell 和 PSSH(Parallel SSH),它们分别有不同的功能和用途

ClusterShell

    特点:

  • ClusterShell 是一个用于管理多台计算机集群的工具,可以同时在多台计算机上执行命令
  • 它支持多种集群通信方法,如 ssh、rsh、sudo 等
  • 允许将任务并行执行,提高效率
  • 提供了 Python API,可以根据需要进行自定义脚本开发

    使用场景:

  • 针对大型计算集群进行系统管理和批量命令执行
  • 用于系统管理员执行系统维护和监控任务

# ClusterShell 安装

macOS

 brew install python@3

 pip3 install clustershell

Debian/Ubuntu

 apt -y install clustershell

CentOS

 yum -y install clustershell

ClusterShell 常用命令使用

clush 命令常用参数

  • -g 指定设置的组
  • -a 表示所有的组
  • -w 后面跟主机节点,多个主机中间用逗号隔开
  • -x 表示去掉某个节点进行操作,后面跟主机节点,多个主机中间用逗号隔开
  • -X 表示去掉某个组进行操作,多个组之间用逗号隔开
  • -b 相同输出结果合并
  • --copy 表示从本地拷贝文件或目录到远程集群节点上,等于 -c
  • --rcopy 表示从远程集群节点上拷贝文件或目录到本机上
  • --dest 表示远程机器的存放路径 

 

PSSH

    特点:

  • PSSH 是一个并行 SSH 工具,用于在多台远程服务器上执行命令
  • 它支持批量命令执行,可以同时在多台服务器上运行相同的命令
  • 提供了一些有用的选项,如输出收集、错误处理等

    使用场景:

  • 执行批量的远程命令,例如安装软件包、配置文件分发等
  • 用于系统管理员快速管理多台服务器

PSSH 安装

# 代码链接:

wget https://salsa.debian.org/python-team/packages/pssh/-/archive/master/pssh-master.tar.gz

tar xf pssh-master.tar.gz && cd pssh-master 

vim setup.py

#!/usr/bin/env python

import os

from setuptools import setup

from psshlib import version

long_description = """PSSH (Parallel SSH) provides parallel versions of OpenSSH and related tools, including pssh, pscp, prsync, pnuke, and pslurp.  The project includes psshlib which can be used within custom applications."""

setup(
    name = "pssh",
    version = version.VERSION,
    author = "Andrew McNabb",
    author_email = "amcnabb@mcnabbs.org",
    url = "https://github.com/lilydjwg/pssh",
    description = "Parallel version of OpenSSH and related tools",
    long_description = long_description,
    license = "BSD",
    platforms = ['linux'],

    classifiers = [
        "Development Status :: 5 - Production/Stable",
        "Intended Audience :: System Administrators",
        "License :: OSI Approved :: BSD License",
        "Operating System :: POSIX",
        "Programming Language :: Python",
        "Programming Language :: Python :: 3",
        "Programming Language :: Python :: 3.5",
        "Programming Language :: Python :: 3.6",
        "Programming Language :: Python :: 3.7",
        "Programming Language :: Python :: 3.8",
        "Topic :: Software Development :: Libraries :: Python Modules",
        "Topic :: System :: Clustering",
        "Topic :: System :: Networking",
        "Topic :: System :: Systems Administration",
        ],

    packages = ['psshlib'],
        scripts = [os.path.join("bin", p) for p in ["pssh", "pnuke", "prsync", "pslurp", "pscp", "pssh-askpass"]],
        data_files = [('share/man/man1', [
          'man/man1/pssh.1', 'man/man1/pscp.1',
          'man/man1/prsync.1', 'man/man1/pslurp.1', 'man/man1/pnuke.1',
        ])],
)
setup.py

python3 setup.py install

# pssh 常用命令使用

pssh 命令常用参数

  • -h  执行命令的远程主机列表文件
  • -H  user@ip:port 文件内容格式:[user@]host[:port]
  • -l   远程机器的用户名
  • -p  每次最大允许多少连接
  • -P  打印输出结果
  • -o  输出内容重定向到一个文件
  • -e  执行错误重定向到一个文件
  • -t  设置命令执行的超时时间 (0 = no timeout)
  • -A  提示输入密码并把密码传递给 ssh(注意这个参数添加后只是提示作用,随便输入或者不输入直接回车都可以)
  • -O  设置 ssh 参数的具体配置,参照 ssh_config 配置文件
  • -x  传递多个 ssh 命令,多个命令用空格分开,用引号括起来
  • -X  同-x ,但是一次只能传递一个命令
  • -i   在每台 host 执行完毕后显示标准输出和标准错误