并行分布式运维工具pdsh

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

 

1、 pdsh应用场景shell

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

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

 

2、pdsh的安装与语法ssh

 

一、pdsh的安装过程工具

 

pdsh的安装很是简单,有rpm包和源码包两种方式,你们可根据本身的喜爱选择适合本身的安装方式。能够在http://code.google.com/p/pdsh/ 下载最新的源码包进行编译安装,目前最新版本为pdsh-2.29,这里下载的源码包为pdsh-2.29.tar.bz2。编译安装过程以下:google

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

[root@server ~]# cd pdsh-2.29命令行

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

> --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两个命令的用法。

 

二、pdsh的语法介绍

 

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

 

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

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

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

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

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

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

此命令在选择远程主机时使用了正则表达式,表示在user010到user031中选择以1结尾的主机名,即在user0十一、user02一、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 此参数能够查看软件的版本信息以及可用的模块信息

相关文章
相关标签/搜索