概述
前面已經介紹了怎麼用腳本實現了對一些服務器的遠程控制和文件傳輸,那麼有沒工具可以類似功能呢?
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
覺得有用的朋友多幫忙轉發哦!後面會分享更多devops和DBA方面的內容,感興趣的朋友可以關注下~
閱讀更多 波波說運維 的文章