levinit linux 笔记
装置
-
从源装置(以 yum 装置为例)
#yum 装置确保曾经装置 epel 源,pdhs 位于该源中 yum install epel-release yum 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 或主机名、域名)一行, 例如:
c01
c02
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
变量