並行管理的方式有很多種:
- 命令行 一般是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
獲取幫助