1. 程式人生 > >批量操作-pssh

批量操作-pssh

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