pdsh使用

原文地址:http://bbs.chinaunix.net/thread-2002080-1-1.html

当我们管理数以十计或者更多的集群系统时,往往需要在每台机器上执行同样的命令,或者拷贝同样的文件,这时,我们就可以考虑使用三个小工具,分别是pdsh、ClusterSSH和mussh。
  在Fedora系统上,我们可以直接通过yum安装这三个软件。
yum install clusterssh pdsh pdsh-rcmd-ssh pdsh-rcmd-rsh mussh
如果是其他Linux系统,也可以到http://clusterssh.sourceforge.net、http://sourceforge.net/projects/pdsh和http://www.sourceforge.net/projects/mussh下载相应的软件。
  无论是clusterssh还是pdsh或mussh,我们都应该相应的设置无密码登录目标系统,这方面的内容,有很多介绍,本文不再提及。

1、pdsh的安装过程

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

[[email protected] ~]# tar jxvf pdsh-2.29.tar.bz2

[[email protected] ~]# cd pdsh-2.29

[[email protected] pdsh-2.29]#./configure --with-ssh --with-rsh --with-mrsh --with-mqshell  \

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

[[email protected] pdsh-2.29]# make

[[email protected] 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的版本号以及可使用的模块信息,操作如下:

[[email protected] ~]$ pdsh -V

pdsh-2.29

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

misc modules: machines,dshgroup

一、pdsh  首先介绍一下pdsh,首先必须在管理节点和每台目标机器上都安装pdsh软件包。pdsh可以在指定的一组机器上执行同一个命令。例如需要管理下列机器,机器名分别为node211,node232,node233,node234,node240。
命令格式如下:
pdsh -w [SSH_OR_RSH]:[email protected][211,232-234,240] [COMMAND] 
其中大写的部分应该被实际内容所取代。例如希望以maluyao用户的身份,在每台机器上执行hostname命令,使用ssh方法进行连接,则结果如下:
[[email protected] ~]$ pdsh -w ssh:[email protected][211,232-234,240] hostname
node240: node240.hn.org
node233: node233.hn.org
node234: node234.hn.org
node232: node232.hn.org
node211: node211.hn.org
这样可以非常清楚的看到每台机器上执行的结果。
另外一些时候,我们可以希望在每台机器上执行一组也许不确定的命令,这时我们可以省略[COMMAND]部分,用法如下:
[[email protected] ~]$ pdsh -w ssh:[email protected][211,232-234,240]
pdsh> hostname
node240: node240.hn.org
node234: node234.hn.org
node233: node233.hn.org
node232: node232.hn.org
node211: node211.hn.org
pdsh> date
node234: Mon Oct 27 14:59:37 CST 2008
node240: Mon Oct 27 14:59:37 CST 2008
node232: Mon Oct 27 14:59:37 CST 2008
node233: Mon Oct 27 14:59:37 CST 2008
node211: Mon Oct 27 14:59:38 CST 2008
pdsh> exit
pdsh软件包还自带了pdcp命令,可以将文件拷贝到一组机器上,用法如下:
pdsh -w [SSH_OR_RSH]:[USERNAME]@node[211,232-234,240] SOURCE_FILE DESTINATION 
想将文件x.org拷贝到上述机器的/home/maluyao/当中,可执行下列命令:
pdcp -w ssh:[email protected][211,232-234,240] x.org /home/maluyao/
如果要拷贝的是目录,则需使用-r参数,例如将目录abc拷贝到/home/maluyao,执行命令如下:
pdcp -r -w ssh:[email protected][211,232-234,240] abc /home/maluyao/

时间: 2024-07-31 14:32:42

pdsh使用的相关文章

pdsh、ClusterSSH和mussh集群管理软件

我是想把 /etc/hosts 文件 分发到 10.205.10.11至20机器上 安装命令 sudo yum -y install clusterssh pdsh pdsh-rcmd-ssh pdsh-rcmd-rsh mussh pdcp -w ssh:[email protected][11-20] /etc/hosts /etc/ pdsh软件包还包括一个pdcp命令,可以将文件拷贝到一组机器上,用法如下:pdsh -w [SSH_OR_RSH]:[USERNAME]@nodesrv[1

并行分布式运维工具pdsh

pdsh的全称是parallel distributed shell,与pssh类似,pdsh可并行执行对远程目标主机的操作,在有批量执行命令或分发任务的运维需求时,使用这个命令可达到事半功倍的效果.同时,pdsh还支持交互模式,当要执行的命令不确定时,可直接进入pdsh命令行,非常方便. 一. pdsh应用场景 pdsh的应用场景基本上与pssh相同,都用于大批量服务器的配置.部署.文件复制等运维操作.在使用pdsh时,仍需要配置本地主机和远程主机间的单向ssh信任.另外,pdsh还附带了pd

Linux运维式具之pdsh

做系统运维的时候,我们经常需要同时在多台机器上执行相同的命令,这个时候可以使用类似pssh,pdsh的并行执行shell的工具. 当然,之前在没有使用这些工具之前,如果有ssh无密码互访,我们可以自己写for循环来执行,但是自己写的for循环是串行, pdsh是并发. 比如,当你接管一个新的大数据集群的时候,需要做的一件事情就是要熟悉所有的配置信息,以做到心中有数,在熟悉了主配置文件之后, 我们需要比对datanode节点的配置文件是否一致,这个时候,我们可以使用pdsh. pdsh –w dn

pssh,pdsh,mussh,cssh,dsh运维工具介绍

pssh 1 安装:#wget http://peak.telecommunity.com/dist/ez_setup.pypython ez_setup.py#wget http://parallel-ssh.googlecode.com/files/pssh-2.2.2.tar.gz# tar zxvf pssh-2.2.2.tar.gz# cd pssh-2.2.2# python setup.py install2 pssh使用 (假设ssh已做好SSH信任,ssh信任请参看:关于ssh

高性能 HTTP 负载测试工具 Vegeta及并行分布式运维工具pdsh

什么是 Vegeta Vegeta 是一个用 Go 语言编写的多功能的 HTTP 负载测试工具,它提供了命令行工具和一个开发库. 官方地址:https://github.com/tsenart/vegeta 安装 Vegeta Vegeta 安装非常简单,由于 Go 语言良好的跨平台性,可以直接下载官方的预编译版本后开箱即用. 预编译版本 这里以 Linux 版本为例: $ wget https://github.com/tsenart/vegeta/releases/download/v7.0

并行管理工具——pdsh

1. pdsh安装2. pdsh常规使用2.1 pdsh 并行管理的方式有很多种: 命令行 一般是for循环 脚本 一般是expect+ssh等自编辑脚本 工具 pssh,pdsh,mussh,cexec等 平台 ansible,pupet等 本篇博客介绍pdsh工具的安装和使用 1. pdsh安装 下载pdsh最新版:pdsh-2.26.tar.bz2,下载地址:https://sourceforge.net/projects/pdsh/ 下载之后,执行命令:tar -jxvf pdsh-2.

Ambari安装指南

一.准备工作 l 基本工具 1) 安装epel,epel是一个提供高质量软件包的项目.先检查主机上是否安装: rpm -q epel-release 2) 如果没有安装,使用rpm命令安装: rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm (也可手动下载安装包安装) 3) 成功后查看其所依附的软件包: rpm -qR epel-release 4) 导入key: rpm --im

Ganglia安装扩容

现有的环境中Hbase集群的机器需要安装ganglia,遂采取了以下步骤. 查看机器的信息, uname –a cat /etc/issue 查看当前环境是x86的,安装的是red hat 6.4 之前有一些集群也是x86,安装的是red hat 6.2 决定从已安装的集群中直接复制过来. 步骤如下: 选中一台安装gmond的节点即可, rpm –qa | grep ganglia 然后对安装的包详细查看安装了哪些文件 rpm –ql packagename 把这些文件直接复制到新节点即可. 尝

成为专业程序员路上用到的各种优秀资料、神器及框架

最近想着怎么把自己的知识体系进行整理起来,使用思维导图进行描述,对自己以后的发展也有一个更深的认识,更快的提升自己:看到了下面这篇文章,感觉非常实用,从语言到框架都非常全面,自己也可以继续补充,也是对自己知识体系的一个补充吧. 前言 成为一名专业程序员的道路上,需要坚持练习.学习与积累,技术方面既要有一定的广度,更要有自己的深度. 笔者作为一位tool mad,将工作以来用到的各种优秀资料.神器及框架整理在此,毕竟好记性不如烂键盘,此项目可以作为自己的不时之需. 本人喜欢折腾,记录的东西也比较杂