天天看點

運維自動化輕量級工具pssh

pssh是python寫的可以并發在多台機器上批量執行指令的工具,它的用法可以媲美ansible的一些簡單用法,執行起來速度比ansible快它支援檔案并行複制,遠端指令執行,殺掉遠端主機上的程序等等。殺手锏是檔案并行複制,,當進行再遠端主機批量上傳下載下傳的時候,最好使用它。

在使用pssh之前,必須要保證管理主機和本地主機進行過密鑰的認證,或者是在進行批量時,沒有做過密鑰認證,但是必須保證被管理的多台主機的密碼相同。關于如何做密鑰認證,這裡就不多說了,可以自行百度。

2.1安裝

或者是yum 來安裝

使用yum安裝後,隻能使用pssh,但是編譯安裝後會包括其他指令也安裝了(pscp  prsync  pnuke  pslurp)

pssh:在遠端多台主機上并行運作指令

pscp :把檔案并行複制到多台遠端主機上

prsync:使用rsync協定本地檔案同步到遠端多台主機上。

pnuke:在遠端多台主機上并行killall某一程序

pslurp:把檔案從遠端多台主機上複制到本地主機上

2.2 pssh常用參數

具體常用介紹:

-h   HOST_FILE   後邊跟遠端主機清單(ip)

-H   HOST_STRING   後邊跟遠端主機名或者ip位址

-l   USER  指定遠端主機的使用者名

-p  PAR   指定pssh最大的并行線程數。

-o  将輸出的内容重定向到一個指定的檔案中

-O 指定ssh參數的具體配置

-e  将執行錯誤重定向到一個指定的檔案中

-t  設定指令執行逾時時間

-x  傳遞ssh指令的一些參數

-i  在遠端主機上執行指令完成後顯示标準輸出和标準錯誤

-P  在執行遠端指令時,輸出執行結果

 用法執行個體:

這個指令類似yu  killall指令

上邊的意思是在遠端主機上批量關閉httpd服務

能通過killall關閉的服務,都可以通過pnuke來批量完成

上邊是,将所有遠端主機/hose/wenjian/yuanc.conf複制到本地主機/home/目錄下,并且重新命名為open.conf  -L 來指定本地檔案路徑

下面這個是拷貝目錄

# pssh -h test.txt -P mkdir /tmp/etc

# prsync -h test.txt -l dongwm -a -r /etc/sysconfig /tmp/etc //标示将本地的/etc/sysconfig目錄遞歸同步到目标伺服器的 /tmp/etc目錄下,并保持原來的時間戳,使用使用者 dongwm

# cat leo.sh 

cd /u02/applications

tar -zcf websiteinterface-$(date +%Y%m%d-%H%M).tgz websiteinterface

pssh -h ip.txt -i -P "$(cat leo.sh)"

pssh -h ip.txt -i -P "`cat leo.sh`"

切記一定要有引号

本文轉自leonardos51CTO部落格,原文連結: http://blog.51cto.com/leomars/1917767,如需轉載請自行聯系原作者