日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747



隨著企業IT基礎架構規模不斷擴張,業務也迅速擴大,企業人員要管理的和業務系統也迅速增加,從之前的幾十臺增加到上百臺甚至幾千臺。面對這么多的,要執行相同的系統配置操作,一臺一臺地部署顯然是不現實的,而通過寫腳本來完成,效率又十分低下,此時就需要一些自動化工具來批量完成。本文介紹輕量級利器pssh,工具小巧、使用簡單,但功能強大,可以為自動化提供強有力的支持。

1、pssh應用場景

pssh的全稱是parallel-ssh,是一個用 Python 編寫的可以并發在多臺 服務器 上批量執行命令的工具,它支持文件并行復制、 遠程 并行執行命令、殺掉 遠程 上的 進程 等。其中,文件并行復制是pssh核心功能,也是同類工具中最大的亮點,因此,要批量在 遠程 主機 上傳、下載文件時,最好選用pssh這個 服務器 批量管理工具。

要使用pssh工具包,必須保證本地和要管理的之間的單向信任,也就是要在本地和所有上配置密鑰認證訪問。創建本地和之間的單向信任非常簡單,下面以創建本地用戶opsuser和所有上opsuser用戶之間的信任為例介紹配置的基本過程。

(1)在本地主機上創建RSA密鑰和公鑰

1)在本地 主機 上以opsuser用戶登錄。

2)在opsuser用戶的根目錄內創建.ssh目錄并設置讀取權限。

[opsuser@server ~]$ mkdir ~/.ssh

[opsuser@server ~]$ chmod 700 ~/.ssh

3)使用ssh-keygen命令生成基于SSH協議的RSA密鑰。

[opsuser@server ~]$ cd ~/.ssh

[opsuser@server ~]$ ssh-keygen -t rsa

在提示保存私鑰(key)和公鑰(public key)的位置時,選擇默認值,然后依次按回車鍵即可。

(2)整合公鑰文件

在本地 主機 上以opsuser用戶登錄,執行如下操作:

[opsuser@server ~]$ cd ~/.ssh

[opsuser@server ssh]$ cat /home/opsuser/.ssh/id_rsa.pub > authorized_keys

[opsuser@server ssh]$ chmod 600 ~/.ssh/authorized_keys

[opsuser@server ssh]$ scp authorized_keys user001:/home/opsuser/.ssh/

這個操作過程是將本地節點生成的公鑰文件整合為一個authorized_keys文件,然后進行授權,并將authorized_keys復制到所有上。這里以user001為例。

(3)測試SSH密鑰認證

在本地 主機 上執行如下命令:

[opsuser@server ssh]$ ssh user001 date

這里以user001為例,其他依此類推,如果不需要輸入就出現系統當前日期,說明SSH單向信任已經配置成功了。

2、pssh的安裝與用法

pssh要求 Python 版本大于2.4即可。這里下載的是pssh-2.3.1.tar.gz,安裝過程如下:

[root@server ~]# tar zxvf pssh-2.3.1.tar.gz

[root@server ~]# cd pssh-2.3.1

[root@server pssh-2.3.1]# python setup.py install

安裝完成的pssh工具包附帶了5個主程序,分別是:

parallel ssh(pssh),在多臺上并行運行命令。

parallel scp(pscp),把文件并行復制到多臺上,類似于scp命令。

parallel rsync(prsync),使用rsync協議將文件從本地同步到多臺上。

parallel nuke(pnuke),在多臺上并行killall某一。

parallel slurp(pslurp),把文件從多臺復制到本地,與pscp命令相反。

完成pssh安裝后,執行“pssh--help”命令即可顯示pssh命令的詳細用法,表1是pssh常用的參數以及語法介紹。

表1 pssh命令的常用參數以及含義

3、pssh應用實例

pssh命令的使用非常靈活,可以根據實際的應用需要選擇對應的命令工具,例如,要在 遠程 上批量執行一些信息統計命令,就可以通過pssh命令來完成。而要將一些文件傳輸到 遠程 的多臺 主機 上,或者將 遠程 主機 的某些文件復制到本地 主機 時,就需要使用pscp命令和pslurp命令了,如果要傳輸某些文件夾到 遠程 多臺 主機 上時,就必須選擇prsync命令了。

(1)pssh批量查看遠程主機信息

通過pssh命令查看user002和user003上面的時間信息,實現過程如圖1所示。

圖1 通過pssh命令查看user002和user003服務器上的時間信息

在這個操作中,通過“-H”參數指定的單臺,另外,通過這個操作可以很清楚地看到“-P”參數與“-i”參數的差別。

pssh命令更多的用途是批量管理,下面的例子演示的就是批量查看多臺的負載狀況,如圖2和圖3所示。

圖2 遠程服務器列表

圖3 通過pssh獲取的遠程服務器負載信息

這個操作中用到了“-O”參數,后面跟的“StrictHostKeyChecking=no”是sshd服務的配置文件ssh_config中的一個選項,通過設置這個參數,可以讓自動接受本地的hostkey,而不用每次都要手動輸入yes。后面還用到了“-h”參數,通過這個參數可以指定一個需要連接的列表,文件內容如圖2所示。在這個文件中省略了用戶名和連接端口,那么pssh將自動使用當前用戶opsuser和默認端口22。

從圖3的輸出結果看,獲取的負載信息不是按照列表的順序顯示的,這剛好說明pssh的并發執行特性。

pssh可調用tar命令解壓上的文件,例如:

[opsuser@server ~]$ pssh -i -h /etc/pssh/hosts "tar -zxvf hadoop-2.0.0-cdh4.5.0.tar.gz"

在這個例子中,pssh默認解壓的是上/home/opsuser/hadoop-2.0.0-cdh4.5.0.tar.gz文件,而要解壓root用戶下的文件,可以執行如下操作:

[opsuser@server ~]$ pssh -i -h /etc/pssh/hosts > "sudo "tar -zxvf /mnt/hadoop-2.0.0-cdh4.5.0.tar.gz -c /mnt" "

在這個例子中,pssh調用了“sudo”命令,因此,要操作具有root權限的文件時,opsuser用戶在上必須開通可通過sudo命令切換到root用戶的權限。

pssh也可批量刪除上指定的文件或目錄,例如:

[opsuser@server ~]$ pssh -i -h /etc/pssh/hosts > "sudo "rm -rf /mnt/hadoop-2.0.0-cdh4.5.0" "

類似的例子有很多,比如通過pssh還可以在上安裝軟件、啟動系統服務等,看下面兩個例子:

[opsuser@server ~]$ pssh -i -h /etc/pssh/hosts "sudo "yum -y install pssh" "

[opsuser@server ~]$ pssh -i -h /etc/pssh/hosts "sudo "/etc/init..d/gmond start" "

下面這個操作是pssh的綜合應用實例:

[opsuser@server ~]$ pssh -i -x "-l opsuser" "-p 9529" -h /etc/pssh/hosts > -o /etc/pssh/info "uptime;uname -a"

這個實例用到了“-x”參數,分別調用了ssh命令的兩個參數“-l”和“-p”,用于指定在上登錄的用戶名和端口,而“-o”參數指定將輸出結果存放到/etc/pssh/info目錄中。在此實例的最后指定了要在上執行的命令,可以指定多個命令,每個命令之間用分號隔開。

(2)pscp與pslurp應用實例

pscp命令的主要作用是將本地文件并行地復制到多臺上,而pslurp是把文件從 多臺復制到本地,這兩個命令的功能剛好相反。在工作中,需要進行文件批量傳送時,這兩個命令非常有用。

首先看pscp的兩個應用實例,如圖4所示。

圖4 pscp應用實例

圖4中第一個例子是將本地上的/etc/ssh/ssh_config文件復制到的/tmp目錄下,這是pscp最簡單的用法,如果要復制的文件比較多,一個一個執行就非常麻煩,此時可以通過復制目錄的方式實現。第二個例子就是將本地的/etc/httpd/conf目錄復制到的/tmp目錄下,在進行目錄復制時,用到了“-r”參數,表示遞歸地復制指定目錄下的所有文件。這里需要注意權限問題,指定上的目標路徑一定是當前用戶可讀寫的,否則會發生錯誤。

完成復制后,在上查看復制過來的目錄,結構如下:

[opsuser@user001 ~]$ ls -ld /tmp/conf drwxr -xr-x 2 opsuser opsuser 4096 Jan 5 16:06 /tmp/conf

接下來再看pslurp的兩個應用實例,如圖5所示。

圖5 pslurp應用實例

圖5中第一個例子是將所有上的/home/opsuser/gmond.conf文件復制到本地的/home/opsuser/test目錄下,并將文件改名為gmond1.conf,這里面用到了“-L”參數,用來指定本地路徑,這個路徑是個目錄,用于存儲從傳輸過來的文件。第二個例子是將所有上的/home/opsuser/gmond目錄復制到本地的/home/opsuser/test目錄下,并將復制過來的目錄改名為gmond1,這里面也用到了“-r”和“-L”參數,需要注意這兩個參數的順序不能顛倒。

完成數據復制后,在本地的/home/opsuser/test目錄下存放著所有以名命名的目錄,這里以user001為例,查看復制過來的文件,結果如圖6所示。

圖6 pslurp復制遠程文件結構圖

(3)prsync與pnuke應用實例

prsync的主要作用是通過rsync協議將文件或目錄從本地同步到多個上,先看prsync的兩個應用實例,如圖7所示。

圖7 prsync應用實例

圖7的第一個實例中使用了“-l”、“-a”和“-r”參數,其中“-l”用于指定上的用戶,“-r”用于遞歸復制指定目錄下的所有文件,“-a”參數可以維持文件的屬性值不變,例如文件的創建時間、修改時間、讀寫權限等,這個參數在做目錄復制時非常有用,建議使用。

第二個實例中又引入了“-z”參數,這是一個壓縮傳輸參數,在低帶寬環境下,或者在對網絡帶寬有要求、傳輸文件壓縮率比較大時使用。而在帶寬充足或傳輸的文件比較大時,不推薦使用。

pnuke的主要作用是在 遠程 多 主機 上并行殺掉某一 進程 ,相當于killall命令。 它的用法非常簡單,最簡單的用法如下:

[opsuser@server ~]$pnuke -h /etc/pssh/hosts httpd

這個命令將在所有上并行關閉httpd服務,pnuke的作用類似于killall,而后面跟的httpd是服務名,其實只要通過killall命令能關閉的服務,都可以通過pnuke來批量完成。

分享到:
標簽:pssh
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定