批量操作-pssh
在大規模集群中,要實現對服務器的統一管理,比如監聽網卡流量,統一給配置文件,kill進程,查看信息等操作時,可以有很多方法或工具來實現,可以使用腳本實現,可以使用諸如ansible之類的自動化管理工具;在這裏,我們來說說pssh,這是一個python寫的並行批量操作工具;諸如此類的工具還有 pdsh,mussh,cssh,dsh等。
二、使用前準備
在使用pssh之前需要在集群中建立公鑰機,具體方法在 --> 公鑰機
可在pssh官方網站獲取http://www.theether.org/pssh/
官網提供了3種安裝方式,src,源碼編譯,以及rpm包,這裏為了方便使用rpm安裝,同時,使用pssh需要python環境。
[root@iie-test ~]# wget http://www.theether.org/pssh/pssh-1.2.2-1.i386.rpm [root@iie-test ~]# yum install pssh-1.2.2-1.i386.rpm 已加載插件:fastestmirror, langpacks 正在檢查 pssh-1.2.2-1.i386.rpm: pssh-1.2.2-1.i386 pssh-1.2.2-1.i386.rpm 將被安裝 正在解決依賴關系 --> 正在檢查事務 ---> 軟件包 pssh.i386.0.1.2.2-1 將被 安裝 --> 解決依賴關系完成 依賴關系解決 ===================================================================== Package 架構 版本 源 大小 ===================================================================== 正在安裝: pssh i386 1.2.2-1 /pssh-1.2.2-1.i386 30 k 事務概要 ===================================================================== 安裝 1 軟件包 總計:30 k 安裝大小:30 k Is this ok [y/d/N]: y Downloading packages: Running transaction check Running transaction test Transaction test succeeded Running transaction 正在安裝 : pssh-1.2.2-1.i386 1/1 驗證中 : pssh-1.2.2-1.i386 1/1 已安裝: pssh.i386 0:1.2.2-1 完畢!
三、使用
pssh有五個組件,分別是
Parallel ssh (pssh)
Parallel scp (pscp)
Parallel rsync (prsync)
Parallel nuke (pnuke)
Parallel slurp (pslurp)
共有主要參數:
-h iplist:必備參數,後跟主機列表
-P:print,打印到屏幕
-v:顯示詳細信息
-o filename:後跟要輸出到的文件
-t n:超時時間
-I:用戶名
-e filename:錯誤輸出
-p n :最大並行數量
pssh:批量並行操作
[root@iie-test ~]# pssh -h iplist.txt -t 3 -P "date" ""號中是要執行的命令,pssh因為是並行,速度超快,好用到誰用誰知道,實測1000臺主機執行kill操作,2秒完成!
pscp:並行復制操作
-r:遞歸
[root@iie-test ~]# pscp -h iplist.txt /root/test/rc.local /etc/rc.local 這個是要將/root/test/rc.local復制給再iplist中的主機的/etc/rc.local。
prsync:使用rsync協議從本地同步遠程主機
-a:存檔
-z:壓縮
-r:遞歸
[root@iie-test ~]# prsync -h iplist.txt /root/test/conf /home/prog/p.conf
pslurp:並行復制遠端主機文件至本地,pscp的反方向
-L localdir:指明本地目錄
-r:復制目錄,遞歸
[root@iie-test ~]# pslurp -h iplist.txt -L /home/data /etc/issue
pnuke:並行kill進程
[root@iie-test ~]# pnuke -h iplist.txt start
批量操作-pssh