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,如需轉載請自行聯系原作者