分享一款自動化運維工具--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

覺得有用的朋友多幫忙轉發哦!後面會分享更多devops和DBA方面的內容,感興趣的朋友可以關注下~