概述
前面已經(jīng)介紹了怎么用腳本實(shí)現(xiàn)了對一些服務(wù)器的遠(yuǎn)程控制和文件傳輸,那么有沒工具可以類似功能呢?
1、PSSH簡介
PSSH提供OpenSSH和相關(guān)工具的并行版本。包括pssh,pscp,prsync,pnuke和pslurp。該項(xiàng)目包括psshlib,可以在自定義應(yīng)用程序中使用。
pssh是Python寫的可以并發(fā)在多臺(tái)機(jī)器上批量執(zhí)行命令的工具,它的用法可以媲美ansible的一些簡單用法,執(zhí)行起來速度比ansible快它支持文件并行復(fù)制,遠(yuǎn)程命令執(zhí)行,殺掉遠(yuǎn)程主機(jī)上的進(jìn)程等等。殺手锏是文件并行復(fù)制,,當(dāng)進(jìn)行再遠(yuǎn)程主機(jī)批量上傳下載的時(shí)候,最好使用它。
項(xiàng)目地址: 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 […]
選項(xiàng):
- –version:查看版本
- -h:主機(jī)文件列表,內(nèi)容格式”[user@]host[:port]”
- -H:主機(jī)字符串,內(nèi)容格式”[user@]host[:port]”
- -l:登錄使用的用戶名
- -p:并發(fā)的線程數(shù)【可選】
- -o:輸出的文件目錄【可選】
- -e:錯(cuò)誤輸入文件【可選】
- -t:TIMEOUT 超時(shí)時(shí)間設(shè)置,0無限制【可選】
- -O:SSH的選項(xiàng)
- -v:詳細(xì)模式
- -A:手動(dòng)輸入密碼模式
- -x:額外的命令行參數(shù)使用空白符號,引號,反斜線處理
- -X:額外的命令行參數(shù),單個(gè)參數(shù)模式,同-x
- -i:每個(gè)服務(wù)器內(nèi)部處理信息輸出
- -P:打印出服務(wù)器返回信息
常用選項(xiàng):-H 、-h 、-i、
4、常見用法
使用yum安裝后,只能使用pssh,但是編譯安裝后會(huì)包括其他命令也安裝了(pscp prsync pnuke pslurp)
pssh:在遠(yuǎn)程多臺(tái)主機(jī)上并行運(yùn)行命令
Example: pssh -h host.txt -A date
pscp :把文件并行復(fù)制到多臺(tái)遠(yuǎn)程主機(jī)上
Example: pscp -h hosts.txt -l irb2 foo.txt /home/irb2/foo.txt
prsync:使用rsync協(xié)議本地文件同步到遠(yuǎn)程多臺(tái)主機(jī)上。
Example: prsync -r -h hosts.txt -l irb2 foo /home/irb2/foo
pnuke:在遠(yuǎn)程多臺(tái)主機(jī)上并行killall某一進(jìn)程
Example: pnuke -h hosts.txt -l irb2 JAVA
pslurp:把文件從遠(yuǎn)程多臺(tái)主機(jī)上復(fù)制到本地主機(jī)上
Example: pslurp -h hosts.txt -L /tmp/outdir -l irb2 /home/irb2/foo.txt foo.txt