Linux 海王 之 pdsh (并行管理工具)

简介: Linux 海王 之 pdsh (并行管理工具)
  • pdsh是一个多线程远程shell客户机,它在多个远程主机并行执行命令
  • pdsh可以使用几种不同的远程shell服务,包括标准的 rshKerberos IVssh
  • 在使用pdsh之前,必须保证本地主机和要管理远程主机之间的单向信任
  • pdsh还附带了pdcp命令,该命令可以将本地文件批量复制到远程的多台主机上,这在大规模的文件分发环境下非常有用
  • github:https://github.com/grondo/pdsh

安装

  • CentOS系列可以使用yum安装,pdsh需要epel
Linux:~ # wget https://github.com/grondo/pdsh/archive/pdsh-2.31.tar.gz
Linux:~ # tar xf pdsh-2.31.tar.gz -C /usr/local/src/
Linux:~ # cd /usr/local/src/pdsh-pdsh-2.31/
Linux:/usr/local/src/pdsh-pdsh-2.31 # ./configure \
--prefix=/usr/local/pdsh \
--with-ssh \
--with-machines=/usr/local/pdsh/machines \
--with-dshgroups=/usr/local/pdsh/group \
--with-rcmd-rank-list=ssh \
--with-exec && \
make && \
make install
  • --with-ssh ssh模块(支持ssh)
  • --with-rcmd-rank-list=ssh 指定默认模式为ssh
  • --with-dshgroups= 指定默认主机组路径
  • --with-machines= 指定默认主机列表

    • 在该文件中写入主机地址(或主机名,需要在hosts中写好主机解析),每行一个
    • 存在machines文件,使用pdsh执行时若不指定主机,则默认对machines文件中所有主机执行该命令
  • --with-exec exec模块
  • 其他模块参数可以在pdsh-pdsh-2.31目录下使用 ./configure --help 命令查看
Linux:~ # ll /usr/local/pdsh/bin/
total 516
-rwxr-xr-x 1 root root   8638 Jan 29 22:15 dshbak
-rwxr-xr-x 1 root root 171664 Jan 29 22:15 pdcp
-rwxr-xr-x 1 root root 171664 Jan 29 22:15 pdsh
-rwxr-xr-x 1 root root 171664 Jan 29 22:15 rpdcp
Linux:~ # echo 'export PATH=/usr/local/pdsh/bin:$PATH' >> /etc/profile
Linux:~ # source /etc/profile
"将pdsh的所有命令追加到环境变量中"
Linux:~ # pdsh -V
pdsh-2.31
rcmd modules: ssh,rsh,exec (default: ssh)
misc modules: machines,dshgroup

使用

  • 语法:pdsh <参数> <需要并行执行的命令>

    • 如果只输入前面两部分,回车后可进入pdsh交互式命令行(若是编译安装需要启用--with-readline),再输入并行执行的命令部分
  • 常用参数:

    • -w 指定主机 -x 排除指定的主机

      • 目标主机可以使用Ip地址或主机名(确保该主机名已经在/etc/hosts中存在解析)
      • 多个主机之间可以使用逗号分隔,可重复使用该参数指定多个主机;可以使用简单的正则
    • -g 指定主机组 -G 排除指定主机组
    • -l 目标主机的用户名

      • 如果不指定用户名,默认以当前用户名作为在目标主机上执行命令的用户名
    • -N 用来关闭目标主机所返回值前的主机名显示

示例

-w 指定主机

Linux:~ # pdsh -w ssh:192.168.72.12,192.168.72.13,192.168.72.14 date
192.168.72.12: Sun Jan 31 12:35:36 CST 2021
192.168.72.14: Sun Jan 31 12:35:36 CST 2021
192.168.72.13: Sun Jan 31 12:35:36 CST 2021
"pdsh -w ssh:192.168.72.[12-14] date 也可以"

-l 指定用户

Linux:~ # pdsh -w ssh:192.168.72.[12-14] -l linux date
192.168.72.12: Sun Jan 31 12:36:32 CST 2021
192.168.72.13: Sun Jan 31 12:36:32 CST 2021
192.168.72.14: Sun Jan 31 12:36:32 CST 2021

-g指定用户组

Linux:~ # mkdir /usr/local/pdsh/group
Linux:~ # cat > /usr/local/pdsh/group/test1 <<EOF
192.168.72.12
192.168.72.13
192.168.72.14
EOF
Linux:~ # pdsh -g test1 'uname -r'
192.168.72.12: 4.4.73-5-default
192.168.72.14: 4.4.73-5-default
192.168.72.13: 4.4.73-5-default

主机列表

Linux:~ # cat > /usr/local/pdsh/machines <<EOF
192.168.72.12
192.168.72.13
192.168.72.14
EOF
Linux:~ # pdsh -a uptime
192.168.72.12:  12:37pm  up   0:08,  2 users,  load average: 0.08, 0.13, 0.09
192.168.72.13:  12:37pm  up   0:07,  1 user,  load average: 0.12, 0.05, 0.01
192.168.72.14:  12:37pm  up   0:07,  1 user,  load average: 0.00, 0.01, 0.00

交互式界面

"有exec模块即可,或者readline模块"
Linux:~ # pdsh -a
pdsh> date
192.168.72.14: Sun Jan 31 12:38:05 CST 2021
192.168.72.13: Sun Jan 31 12:38:05 CST 2021
192.168.72.12: Sun Jan 31 12:38:05 CST 2021
pdsh> whoami
192.168.72.12: root
192.168.72.14: root
192.168.72.13: root
pdsh> exit                "退出交互式界面"
目录
相关文章
|
8月前
|
安全 Linux Shell
四、Linux核心工具:Vim, 文件链接与SSH
要想在Linux世界里游刃有余,光会“走路”还不够,还得配上几样“高级装备”。首先是Vim编辑器,它像一把瑞士军刀,让你能在命令行里高效地修改文件。然后要懂“软硬链接”,软链接像个快捷方式,硬链接则是给文件起了个别名。最后,SSH是你的“传送门”,不仅能让你安全地远程登录服务器,还能用scp轻松传输文件,设置好密钥更能实现免-密登录,极大提升效率。
539 5
|
12月前
|
Linux 开发工具
7种比较Linux中文本文件的最佳工具
7种比较Linux中文本文件的最佳工具
7种比较Linux中文本文件的最佳工具
|
8月前
|
Unix Linux 程序员
Linux文本搜索工具grep命令使用指南
以上就是对Linux环境下强大工具 `grep` 的基础到进阶功能介绍。它不仅能够执行简单文字查询任务还能够处理复杂文字处理任务,并且支持强大而灵活地正则表达规范来增加查询精度与效率。无论您是程序员、数据分析师还是系统管理员,在日常工作中熟练运用该命令都将极大提升您处理和分析数据效率。
644 16
|
8月前
|
安全 Linux iOS开发
SonarQube Server 2025 Release 5 (macOS, Linux, Windows) - 代码质量、安全与静态分析工具
SonarQube Server 2025 Release 5 (macOS, Linux, Windows) - 代码质量、安全与静态分析工具
341 0
SonarQube Server 2025 Release 5 (macOS, Linux, Windows) - 代码质量、安全与静态分析工具
|
10月前
|
缓存 监控 Linux
Linux系统性能调优技巧和相关工具
Linux 作为一种应用应展和系统服务的优选操作系统,在处理性能和端到端点评估上持有出色表现。但是,在处理进程或系统处于低效状态时,性能调优就显得十分重要。本文将探讨一些 Linux 系统性能调优的常用技巧,并介绍相关工具
270 1
Linux系统性能调优技巧和相关工具
|
10月前
|
Linux 数据安全/隐私保护 iOS开发
推荐Linux环境下效能优良的双向文件同步工具
综合上述条件,对于Linux环境下的双向文件同步需求,Unison 和 Syncthing 是两个非常出色的选择。它们都有良好的社区支持和文档资源,适用于不同规模的环境,从个人使用到商业部署。Unison 特别适合那些需要手动干预同步过程、需要处理文件冲突解决的场景。而 Syncthing 更加现代化,适合需要自动、实时的数据同步与备份的环境。对于选择哪一个,这将取决于个人的使用场景和具体需求。
1055 16
|
12月前
|
Ubuntu 搜索推荐 Linux
详解Ubuntu的strings与grep命令:Linux开发的实用工具。
这就是Ubuntu中的strings和grep命令,透明且强大。我希望你喜欢这个神奇的世界,并能在你的Linux开发旅程上,通过它们找到你的方向。记住,你的电脑是你的舞台,在上面你可以做任何你想做的事,只要你敢于尝试。
508 32
|
9月前
|
数据采集 编解码 运维
一文讲完说懂 WowKey -- WowKey 是一款 Linux 类设备的命令行(CLT)运维工具
WowKey 是一款面向 Linux 类设备的命令行运维工具,支持自动登录、批量执行及标准化维护,适用于企业、团队或个人管理多台设备,显著提升运维效率与质量。
|
自然语言处理 数据库 iOS开发
DBeaver Ultimate Edtion 25.0 Multilingual (macOS, Linux, Windows) - 通用数据库工具
DBeaver Ultimate Edtion 25.0 Multilingual (macOS, Linux, Windows) - 通用数据库工具
927 12
DBeaver Ultimate Edtion 25.0 Multilingual (macOS, Linux, Windows) - 通用数据库工具