并行分布式运维工具pdsh

简介:

pdsh的全称是parallel distributed shell,与pssh类似,pdsh可并行执行对远程目标主机的操作,在有批量执行命令或分发任务的运维需求时,使用这个命令可达到事半功倍的效果。同时,pdsh还支持交互模式,当要执行的命令不确定时,可直接进入pdsh命令行,非常方便。


一、 pdsh应用场景

pdsh的应用场景基本上与pssh相同,都用于大批量服务器的配置、部署、文件复制等运维操作。在使用pdsh时,仍需要配置本地主机和远程主机间的单向ssh信任。另外,pdsh还附带了pdcp命令,此命令可以将本地文件批量复制到远程的多台主机上,这在大规模的文件分发环境下是非常有用的。

pdsh可以通过多种方式在远程主机上运行命令,默认是rsh方式,另外也支持ssh、mrsh、qsh、mqsh、krb4、xcpu等多种rcmd模块,这个可以在运行命令时通过参数指定。


二、pdsh的安装与语法


1、pdsh的安装过程


pdsh的安装非常简单,有rpm包和源码包两种方式,大家可根据自己的喜好选择适合自己的安装方式。可以在http://code.google.com/p/pdsh/ 下载最新的源码包进行编译安装,目前最新版本为pdsh-2.29,这里下载的源码包为pdsh-2.29.tar.bz2。编译安装过程如下:

[root@server ~]# tar jxvf pdsh-2.29.tar.bz2

[root@server ~]# cd pdsh-2.29

[root@server pdsh-2.29]#./configure --with-ssh --with-rsh --with-mrsh --with-mqshell  \

> --with-qshell  --with-dshgroups --with-machines=/etc/pdsh/machines

[root@server pdsh-2.29]# make

[root@server pdsh-2.29]# make install

在执行configure阶段,“--with-ssh”参数表示启用ssh模块,其他参数都有类似的含义,而“--with-dshgroups”表示启用主机组支持,启用此参数后,就可以将一组主机列表写入一个文件并放到~/.dsh/group或/etc/dsh/group目录下,然后通过pdsh的“-g”参数进行调用。最后的参数“--with-machines”是“--with-dshgroups”参数的扩展,通过将所有要管理的主机列表都写入指定的/etc/pdsh/machines文件中,接着通过pdsh的“-a”参数调用,最终完成所有主机的便捷管理。

完成安装后,可以通过“pdsh –V”查看pdsh的版本号以及可使用的模块信息,操作如下:

[opsuser@server ~]$ pdsh -V

pdsh-2.29

rcmd modules: ssh,rsh,exec (default: rsh)

misc modules: machines,dshgroup

此外,也可以通过“pdsh -L”来显示当前所有加载的模块信息。在pdsh安装完成后,还有一个可用的工具pdcp,后面将详细讲述pdsh和pdcp两个命令的用法。


2、pdsh的语法介绍


安装pdsh完成后,通过执行“pdsh –h”和“pdcp –h”即可得到两个命令的完整用法,由于两个命令的参数大同小异,因此这里以pdsh命令为主介绍一些常用的参数及含义。下表是pdsh常用的参数及其含义。


-w host,host 指定远程主机,可以指定多个,每个主机用逗号隔开,host可以是主机名也可以是IP地址。此参数非常灵活,常用的形式有:

pdsh -w ssh:user001,ssh:user002,ssh:user003 "date"

此命令用来查看user001、user002、user003主机上的时间,其中ssh表示在远程主机上执行命令的形式,默认是rsh。

pdsh -w ssh:user00[1-10] "date"

此命令用于在user001到user0010上执行date命令。

pdsh -w ssh:user0[10-31],/1$/ "uptime"

此命令在选择远程主机时使用了正则表达式,表示在user010到user031中选择以1结尾的主机名,即在user011、user021、user031上执行uptime命令


-R 指定使用rcmd的模块名,默认是rsh。如果要选择ssh,可以通过如下方式指定:

pdsh -R ssh -w user00[1-10] "date"


-l 指定在远程主机上使用的用户名称。例如:

pdsh -R ssh -l opsuser -w user00[1-9] "date"


-x 此参数用来排除某些或某个主机,例如:

pdsh -R ssh -l opsuser -w user00[1-9] -x user005,user007 "date"


-t 指定连接远程主机的超时时间,以秒为单位,默认是10秒,可以通过此参数修改默认值,例如:pdsh -R ssh -w slave000[1-9]  -t 15  "date"


-u 设置远程命令执行的超时时间,以秒为单位,以ssh方式连接时,默认时间为无限


-f 设置同时连接到远程主机的个数

-N 此参数用来关闭远程主机所返回结果中的主机名显示

-a 通过此参数可以指定所有的远程主机,设置此参数后,pdsh默认会查看/etc/machines文件中的主机列表,要改变此路径,在编译pdsh时通过“--with-machines”参数指定即可

-g 此参数用来指定一组远程主机,在编译pdsh时可以通过“--with-dshgroups”参数来激活此选项,默认可以将一组主机列表写入一个文件中并放到本地主机的~/.dsh/group或/etc/dsh/group目录下,这样就可以通过“-g”参数调用了。例如:pdsh -R ssh -g userhosts "date",其中“userhosts”是一个主机列表文件,可以将此文件放在~/.dsh/group或/etc/dsh/group目录下

-X 此参数用来排除指定组内的所有主机,经常与“-a”参数一起使用。例如:

pdsh -R ssh -a -X userhosts  "date"

-q 此参数可以列出pdsh执行时的一些配置信息

-V 此参数可以查看软件的版本信息以及可用的模块信息


















本文转自南非蚂蚁51CTO博客,原文链接: http://blog.51cto.com/ixdba/1550184,如需转载请自行联系原作者



相关文章
|
4月前
|
负载均衡 测试技术 调度
大模型分布式推理:张量并行与流水线并行技术
本文深入探讨大语言模型分布式推理的核心技术——张量并行与流水线并行。通过分析单GPU内存限制下的模型部署挑战,详细解析张量并行的矩阵分片策略、流水线并行的阶段划分机制,以及二者的混合并行架构。文章包含完整的分布式推理框架实现、通信优化策略和性能调优指南,为千亿参数大模型的分布式部署提供全面解决方案。
1145 4
|
7月前
|
运维 Prometheus 监控
别再盲选了!开源运维工具选型这事儿,咱得说人话
别再盲选了!开源运维工具选型这事儿,咱得说人话
456 7
|
6月前
|
运维 监控 NoSQL
分布式不是“分布痛”吗?说说那些年我踩过的运维坑和总结的血泪经验
分布式不是“分布痛”吗?说说那些年我踩过的运维坑和总结的血泪经验
202 0
|
8月前
|
人工智能 运维 安全
基于合合信息开源智能终端工具—Chaterm的实战指南【当运维遇上AI,一场效率革命正在发生】
在云计算和多平台运维日益复杂的今天,传统命令行工具正面临前所未有的挑战。工程师不仅要记忆成百上千条操作命令,还需在不同平台之间切换终端、脚本、权限和语法,操作效率与安全性常常难以兼顾。尤其在多云环境、远程办公、跨部门协作频繁的背景下,这些“低效、碎片化、易出错”的传统运维方式,已经严重阻碍了 IT 团队的创新能力和响应速度。 而就在这时,一款由合合信息推出的新型智能终端工具——Chaterm,正在悄然颠覆这一现状。它不仅是一款跨平台终端工具,更是业内率先引入 AI Agent 能力 的“会思考”的云资源管理助手。
|
4月前
|
存储 监控 算法
117_LLM训练的高效分布式策略:从数据并行到ZeRO优化
在2025年,大型语言模型(LLM)的规模已经达到了数千亿甚至数万亿参数,训练这样的庞然大物需要先进的分布式训练技术支持。本文将深入探讨LLM训练中的高效分布式策略,从基础的数据并行到最先进的ZeRO优化技术,为读者提供全面且实用的技术指南。
|
5月前
|
运维 监控 Kubernetes
分布式系统太大管不过来?运维效率提升的那些真招实料
分布式系统太大管不过来?运维效率提升的那些真招实料
149 3
|
5月前
|
并行计算 算法 调度
基于串行并行ADMM算法的主从配电网分布式优化控制研究(Matlab代码实现)
基于串行并行ADMM算法的主从配电网分布式优化控制研究(Matlab代码实现)
334 0
|
7月前
|
敏捷开发 运维 数据可视化
DevOps看板工具中的协作功能:如何打破开发、测试与运维之间的沟通壁垒
在DevOps实践中,看板工具通过可视化任务管理和自动化流程,提升开发与运维团队的协作效率。它支持敏捷开发、持续交付,助力团队高效应对需求变化,实现跨职能协作与流程优化。
|
8月前
|
存储 监控 关系型数据库
突破IO瓶颈:PolarDB分布式并行查询(Parallel Query)深度调优手册
在海量数据处理中,I/O瓶颈严重制约数据库性能。本文基于PolarDB MySQL 8.0.32版本,深入解析分布式并行查询技术如何提升CPU利用率至86.7%、IO吞吐达8.5GB/s,并结合20+实战案例,系统讲解并行架构、执行计划优化、资源调优与故障排查方法,助力实现高性能数据分析。
307 6
|
8月前
|
运维 监控 Linux
WGCLOUD运维平台的分布式计划任务功能介绍
WGCLOUD是一款免费开源的运维监控平台,支持主机与服务器性能监控,具备实时告警和自愈功能。本文重点介绍其计划任务功能模块,可统一管理Linux和Windows主机的定时任务。相比手动配置crontab或Windows任务计划,WGCLOUD提供直观界面,通过添加cron表达式、执行指令或脚本并选择主机,即可轻松完成任务设置,大幅提升多主机任务管理效率。

热门文章

最新文章