pssh是python寫的能夠併發在多臺機器上批量執行命令的工具,它的用法能夠媲美ansible的一些簡單用法,執行起來速度比ansible快它支持文件並行複製,遠程命令執行,殺掉遠程主機上的進程等等。殺手鐗是文件並行複製,,當進行再遠程主機批量上傳下載的時候,最好使用它。python
在使用pssh以前,必需要保證管理主機和本地主機進行過密鑰的認證,或者是在進行批量時,沒有作過密鑰認證,可是必須保證被管理的多臺主機的密碼相同。關於如何作密鑰認證,這裏就很少說了,能夠自行百度。api
2.1安裝併發
官網地址:https://code.google.com/archive/p/parallel-ssh/downloads(須要能打開谷歌)ssh
或者是yum 來安裝ide
wget https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/parallel-ssh/pssh-2.3.1.tar.gz tar -zxvf pssh-2.3.1.tar.gz cd pssh-2.3.1 python setup.py install 或者 yum install -y pssh
使用yum安裝後,只能使用pssh,可是編譯安裝後會包括其餘命令也安裝了(pscp prsync pnuke pslurp)工具
pssh:在遠程多臺主機上並行運行命令this
pscp :把文件並行複製到多臺遠程主機上google
prsync:使用rsync協議本地文件同步到遠程多臺主機上。spa
pnuke:在遠程多臺主機上並行killall某一進程線程
pslurp:把文件從遠程多臺主機上覆制到本地主機上
2.2 pssh經常使用參數
1 pssh --help 2 3 Usage: pssh [OPTIONS] command [...] 4 5 Options: 6 --version show program's version number and exit 7 --help show this help message and exit 8 -h HOST_FILE, --hosts=HOST_FILE 9 hosts file (each line "[user@]host[:port]") 10 -H HOST_STRING, --host=HOST_STRING 11 additional host entries ("[user@]host[:port]") 12 -l USER, --user=USER username (OPTIONAL) 13 -p PAR, --par=PAR max number of parallel threads (OPTIONAL) 14 -o OUTDIR, --outdir=OUTDIR 15 output directory for stdout files (OPTIONAL) 16 -e ERRDIR, --errdir=ERRDIR 17 output directory for stderr files (OPTIONAL) 18 -t TIMEOUT, --timeout=TIMEOUT 19 timeout (secs) (0 = no timeout) per host (OPTIONAL) 20 -O OPTION, --option=OPTION 21 SSH option (OPTIONAL) 22 -v, --verbose turn on warning and diagnostic messages (OPTIONAL) 23 -A, --askpass Ask for a password (OPTIONAL) 24 -x ARGS, --extra-args=ARGS 25 Extra command-line arguments, with processing for 26 spaces, quotes, and backslashes 27 -X ARG, --extra-arg=ARG 28 Extra command-line argument 29 -i, --inline inline aggregated output and error for each server 30 --inline-stdout inline standard output for each server 31 -I, --send-input read from standard input and send as input to ssh 32 -P, --print print output as we get it 33 34 Example: pssh -h hosts.txt -l irb2 -o /tmp/foo uptime
具體經常使用介紹:
-h HOST_FILE 後邊跟遠程主機列表(ip)
-H HOST_STRING 後邊跟遠程主機名或者ip地址
-l USER 指定遠程主機的用戶名
-p PAR 指定pssh最大的並行線程數。
-o 將輸出的內容重定向到一個指定的文件中
-O 指定ssh參數的具體配置
-e 將執行錯誤重定向到一個指定的文件中
-t 設定命令執行超時時間
-x 傳遞ssh命令的一些參數
-i 在遠程主機上執行命令完成後顯示標準輸出和標準錯誤
-P 在執行遠程命令時,輸出執行結果
用法實例:
pssh -P -i -h sz_vpc.txt "w"
pscp -h ip.txt /etc/wenjian.txt /tmp/
這個命令相似yu killall命令
pnuke -h iplist.txt httpd
上邊的意思是在遠程主機上批量關閉httpd服務
能經過killall關閉的服務,均可以經過pnuke來批量完成
pslurp -h iplist.txt -L /home/ /hose/wenjian/yuanc.conf open.conf
上邊是,將全部遠程主機/hose/wenjian/yuanc.conf複製到本地主機/home/目錄下,而且從新命名爲open.conf -L 來指定本地文件路徑
下面這個是拷貝目錄
pslurp -h iplist.txt -r -L /home/ /hose/wenjian/ open