并行管理的方式有很多种:
- 命令行 一般是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.26.tar.bz2 -C /tmp
,解压至/tmp/pdsh-2.26
执行命令:cd /tmp/pdsh-2.26/;进入目录
执行configure命令,如下:
./configure
--prefix=/usr/local/globle/softs/tools/pdsh/2.26/
--with-timeout=60
--with-ssh
--with-exec
--with-nodeupdown
--with-readline
--with-rcmd-rank-list=ssh
解释如下:
选项 | 解释 |
--prefix | 指定安装目录 |
--with-timeout=60 | 指定pdsh默认执行超时时间 |
--with-ssh | 编译ssh模块 |
--with-exec | 编译exec模块 |
--with-nodeupdown | 编译节点宕机功能 |
--with-readline | 编译readline功能 |
--with-rcmd-rank-list | 指定默认模式为ssh |
--with-machines | 指定默认主机列表 |
【错误提示】:configure: error: Cannot find libreadline!
【解决方式】:执行命令:yum -y install readline-devel
./configure执行通过之后,执行make && make install
,进行编译和安装。完成之后,将命令路径添加至环境变量
2. pdsh常规使用
2.1 pdsh
在上过过程中,已经通过--with-machines,指定可以使用/usr/local/globle/softs/tools/pdsh/2.26/machines来定义默认的主机列表
内容如下:
node11
node12
node13
node14
node15
控制台执行:pdsh -a hostname
通过执行:pdsh -a date
,发现各节点时间不同,且与时间服务器不同,执行pdsh -a ntpdate 192.168.80.8
进行同步
在《NTP服务部署和测试.md》(博客园链接:https://www.cnblogs.com/liwanliangblog/p/9194004.html)中介绍说,同步各个节点之间的时间,可以通过定时任务的方式。
2.2 pdcp
pdcp用于把文件拷贝。指定主机的方式和pdsh一样。使用方法如下图所示:
更加复杂的用法, 使用pdcp -h
获取帮助