分享一款自動化運維工具--PSSH工具
概述
前面已經介紹了怎么用腳本實現了對一些服務器的遠程控制和文件傳輸,那么有沒工具可以類似功能呢?
1、PSSH簡介
PSSH提供OpenSSH和相關工具的并行版本。包括pssh,pscp,prsync,pnuke和pslurp。該項目包括psshlib,可以在自定義應用程序中使用。
pssh是python寫的可以并發在多臺機器上批量執行命令的工具,它的用法可以媲美ansible的一些簡單用法,執行起來速度比ansible快它支持文件并行復制,遠程命令執行,殺掉遠程主機上的進程等等。殺手锏是文件并行復制,,當進行再遠程主機批量上傳下載的時候,最好使用它。
項目地址: https://code.google.com/archive/p/parallel-ssh/

2、安裝PSSH
前提條件:注意需要安裝 python 2.4 或以上版本
- ==========yum安裝==========
- yum install pssh
- ==========源碼安裝==========
- wget http://parallel-ssh.googlecode.com/files/pssh-2.3.1.tar.gz
- tar -xvf pssh-2.3.1.tar.gz
- cd pssh-2.3.1/
- python setup.py build && python setup.py install

3、pssh語法
- pssh [OPTIONS] command […]
選項:
- –version:查看版本
- -h:主機文件列表,內容格式”[user@]host[:port]”
- -H:主機字符串,內容格式”[user@]host[:port]”
- -l:登錄使用的用戶名
- -p:并發的線程數【可選】
- -o:輸出的文件目錄【可選】
- -e:錯誤輸入文件【可選】
- -t:TIMEOUT 超時時間設置,0無限制【可選】
- -O:SSH的選項
- -v:詳細模式
- -A:手動輸入密碼模式
- -x:額外的命令行參數使用空白符號,引號,反斜線處理
- -X:額外的命令行參數,單個參數模式,同-x
- -i:每個服務器內部處理信息輸出
- -P:打印出服務器返回信息
常用選項:-H 、-h 、-i、
4、常見用法
使用yum安裝后,只能使用pssh,但是編譯安裝后會包括其他命令也安裝了(pscp prsync pnuke pslurp)
pssh:在遠程多臺主機上并行運行命令
- Example: pssh -h host.txt -A date

pscp :把文件并行復制到多臺遠程主機上
- Example: pscp -h hosts.txt -l irb2 foo.txt /home/irb2/foo.txt
prsync:使用rsync協議本地文件同步到遠程多臺主機上。
- Example: prsync -r -h hosts.txt -l irb2 foo /home/irb2/foo
pnuke:在遠程多臺主機上并行killall某一進程
- Example: pnuke -h hosts.txt -l irb2 java
pslurp:把文件從遠程多臺主機上復制到本地主機上
- Example: pslurp -h hosts.txt -L /tmp/outdir -l irb2
- /home/irb2/foo.txt foo.txt