levinit linux 笔记
装置
从源装置(以yum装置为例)
#yum装置确保曾经装置epel源,pdhs位于该源中yum install epel-releaseyum install pdsh#不同发行版打包的粒度可能不同,rhel/centos中pdsh的相干mod独自打包#pdsh-mod-dshgroup.x86_64 : Provides dsh-style group file support for pdsh#pdsh-mod-genders.x86_64 : Provides libgenders support for pdsh#pdsh-mod-netgroup.x86_64 : Provides netgroup support for pdsh#pdsh-mod-nodeupdown.x86_64 : Provides libnodeupdown support for pdsh#pdsh-mod-torque.x86_64 : Provides support for running pdsh under Torque jobid#pdsh-rcmd-rsh.x86_64 : Provides bsd rcmd capability to pdsh#pdsh-rcmd-ssh.x86_64 : Provides ssh rcmd capability to pdsh
编译装置
下载pdsh编译。罕用的几个编译选项:
./configure --prefix=/usr/local/pdsh --with-ssh --with-machines=/path/to/machines --with-dshgroups --with-timeout=15 --with-readline
--with-ssh
ssh模块(反对ssh)--with-dshgroups
反对dsh格调的主机分组--with-machines=</path/to/file>
主机列表文件门路在该文件中写入主机地址(或主机名——须要在hosts中写好主机解析),每行一个。
存在machines文件,应用
pdsh
执行时若不指定主机,则默认对machines文件中所有主机执行该命令。--with-exec
exec模块--with-timeout
超时,默认10s--with-readline
反对交互模式输出--with-nodeupdown
节点宕机性能--with-readline
编译readline性能,反对交互式输出模式
具体可参看文档。
应用
一条pdsh命令分为三局部:pdsh
+ 参数
+ 并行执行的命令
。
参数局部不肯定是必须的,该局部中个别会指定要执行的命令的主机信息。
如果只输出后面两局部,回车后可进入pdsh交互式命令行(若是编译装置须要启用--with-readline
),再输出并行执行的命令局部。
罕用参数:
-w
指定主机-x
排除指定的主机指标主机能够应用Ip地址或主机名(确保该主机名曾经在
/etc/hosts
中存在解析)多个主机之间能够应用逗号分隔,可重复使用该参数指定多个主机;能够应用简略的正则(参看上面的示例)。
g
指定主机组-G
排除指定主机组-l <username
指标主机的用户名如果不指定用户名,默认以以后用户名作为在指标主机上执行命令的用户名。
例如:以后执行pdsh的用户为root,则以root用户在指标主机上执行命令。
-t <seconds>
超时工夫(单位:秒)-N
用来敞开指标主机所返回值前的主机名显示。-b
禁止Ctrlc个性,应用该选项和,按下Ctrlc将kill所有并行的工作。
pdsh -w 192.168.0.1 -w 172.16.0.1 -w master "hostname"pdsh -w c[01-10] date #对c01--c10主机执行date命令pdsh -w c[01-10] -x c2 poweroff #对c01--c10但排除c02 执行关机命令pdsh -w c01,c10,master reboot #对c1,c10,master执行重启命令pdsh -w c[01-10] -l test id #应用test用户在c01--c10执行id命令
主机列表文件
主机列表文件蕴含一个或多个主机信息,当存在该文件时,间接应用pdsh
命令而不指定主机列表,将默认指定主机列表中的主机执行后续命令。
留神:如果是编译装置,须要--with-machines
启用该性能并指定主机列表文件门路。
WCOLL
环境变量也设置主机列表文件但门路:
export WCOLL=/opt/nodes
主机列表文件中每个主机(应用ip或主机名、域名)一行,例如:
c01c02
pdsh hostname #主机列表文件中但主机均执行hostname命令
主机分组
如果装置有dshgroup模块(编译装置须要启用--with-dshgroups
),可应用主机分组性能。
默认的主机组定义文件寄存目录是/etc/dsh/group/
或~/.dsh/group/
,该目录中可蕴含一个或多个主机列表文件。
DSHGROUP_PATH
环境变量能够定义主机列表的寄存目录:
export DSHGROUP_PATH=/opt/pdsh/group
例如在主机组目录中增加了group1
和group2
两个主机列表文件:
pdsh -g group1 hostname #在group1组的主机上执行hostname命令pdsh -g group2 uname -r #在group2组的主机上执行uname -r命令
pdcp
pdsh提供的多主机并行复制工具,该性能须要每个主机都装有pdsh。
用法相似cp。
其余环境变量(参看man pdsh
)
PDSH_RCMD_TYPE
同-R
选项,设置rcmd模块(如ssh或rsh)PDSH_SSH_ARGS
设置ssh参数PDSH_SSH_ARGS_APPEND
设置追加的ssh参数(如ssh的-q
参数)DPATH
设置近程主机的PATH
变量