CentOS7下安装pssh并使用
文章目錄
- 檢查安裝環(huán)境
- 安裝pssh
- pssh命令包
- 命令具體使用
- pssh 遠(yuǎn)程批量執(zhí)行命令
- pscp 并行傳輸文件到遠(yuǎn)程
- prsync 并行傳輸文件到遠(yuǎn)程
- pslurp從遠(yuǎn)程拉取到本地
- pnuke遠(yuǎn)程批量killall
- 可能遇到遠(yuǎn)程腳本無法執(zhí)行問題
檢查安裝環(huán)境
pssh需要python2.4或者以上版本,首先查詢一下自己CentOS中的python版本,查詢命令如下:
[root@hadoop-master ~]# python --version Python 2.7.5如果還沒有安裝python可以自行安裝《Linux下初學(xué)python之基本安裝》
安裝pssh
wget https://pypi.python.org/packages/60/9a/8035af3a7d3d1617ae2c7c174efa4f154e5bf9c24b36b623413b38be8e4a/pssh-2.3.1.tar.gz tar xf pssh-2.3.1.tar.gz -C /usr/local/pssh/ cd /usr/local/pssh/pssh-2.3.1/ python setup.py install查看安裝
[root@hadoop-master pssh-2.3.1]# pssh --help Usage: pssh [OPTIONS] command [...]Options:--version show program's version number and exit--help show this help message and exit-h HOST_FILE, --hosts=HOST_FILEhosts file (each line "[user@]host[:port]")-H HOST_STRING, --host=HOST_STRINGadditional host entries ("[user@]host[:port]")-l USER, --user=USER username (OPTIONAL)-p PAR, --par=PAR max number of parallel threads (OPTIONAL)-o OUTDIR, --outdir=OUTDIRoutput directory for stdout files (OPTIONAL)-e ERRDIR, --errdir=ERRDIRoutput directory for stderr files (OPTIONAL)-t TIMEOUT, --timeout=TIMEOUTtimeout (secs) (0 = no timeout) per host (OPTIONAL)-O OPTION, --option=OPTIONSSH option (OPTIONAL)-v, --verbose turn on warning and diagnostic messages (OPTIONAL)-A, --askpass Ask for a password (OPTIONAL)-x ARGS, --extra-args=ARGSExtra command-line arguments, with processing forspaces, quotes, and backslashes-X ARG, --extra-arg=ARGExtra command-line argument-i, --inline inline aggregated output and error for each server--inline-stdout inline standard output for each server-I, --send-input read from standard input and send as input to ssh-P, --print print output as we get itExample: pssh -h hosts.txt -l irb2 -o /tmp/foo uptimepssh命令包
| pssh | 多主機(jī)并行運(yùn)行命令 |
| pscp | 傳輸文件到多個(gè)hosts,他的特性和scp差不多 |
| prsync | 使用rsync協(xié)議從本地計(jì)算機(jī)到遠(yuǎn)程主機(jī) |
| pslurp | 從遠(yuǎn)程主機(jī)拷貝文件到本地 |
| pnuke | kill遠(yuǎn)程機(jī)器的進(jìn)程 |
參數(shù)說明:
| -h | 執(zhí)行命令的遠(yuǎn)程主機(jī)列表,是一個(gè)文本文件,主機(jī)ip或主機(jī)名以回車符分隔。 |
| -l | 遠(yuǎn)程機(jī)器的用戶名 |
| -p | 一次最大允許多少連接(小寫) |
| -o | 輸出內(nèi)容重定向到一個(gè)文件(小寫) |
| -e | 執(zhí)行錯(cuò)誤重定向到一個(gè)文件 |
| -t | 設(shè)置命令執(zhí)行的超時(shí)時(shí)間 |
| -A | 提示輸入密碼并且把密碼傳遞給ssh |
| -O | 設(shè)置ssh參數(shù)的具體配置,參照ssh_config配置文件(大寫) |
| -x | 傳遞多個(gè)SSH 命令,多個(gè)命令用空格分開,用引號(hào)括起來 |
| -X | 同-x 但是一次只能傳遞一個(gè)命令 |
| -i | 顯示標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)錯(cuò)誤在每臺(tái)host執(zhí)行完畢后 |
| -I | 讀取每個(gè)輸入命令,并傳遞給ssh進(jìn)程 允許命令腳本傳送到標(biāo)準(zhǔn)輸入 |
| -P | 打印輸出(大寫) |
命令具體使用
最好設(shè)置服務(wù)器之間免密登錄,設(shè)置免密登錄參考《CentOS7虛擬機(jī)之間設(shè)置免密登錄》
首先,編輯一個(gè)hosts.txt文件記錄要操作的主機(jī)地址,下面的是我主機(jī)配置的,其中hadoop-slave2和
hadoop-slave3處于關(guān)機(jī)狀態(tài)
pssh 遠(yuǎn)程批量執(zhí)行命令
#-h 后面接主機(jī)ip文件,文件數(shù)據(jù)格式[user@]host[:port] #-P 顯示輸出內(nèi)容具體使用
[root@hadoop-master pssh]# pssh -P -h hosts.text uptime hadoop-slave1: 13:55:14 up 1 day, 4:03, 0 users, load average: 0.00, 0.01, 0.05 [1] 13:55:31 [SUCCESS] hadoop-slave1 [2] 13:55:33 [FAILURE] hadoop-slave2 Exited with error code 255 [3] 13:55:33 [FAILURE] hadoop-slave3 Exited with error code 255如果要輸入密碼可以使用如下命令:
[root@hadoop-master pssh]# pssh -A -h hosts.text uptime如果是執(zhí)行長(zhǎng)shell命令,可以類似下面這種方式
[root@hadoop-master pssh]# pssh -h hosts.text "source /etc/profile" [1] 21:01:46 [SUCCESS] hadoop-slave3 [2] 21:01:46 [SUCCESS] hadoop-slave2 [3] 21:01:46 [SUCCESS] hadoop-slave1pscp 并行傳輸文件到遠(yuǎn)程
傳輸文件,但是不支持遠(yuǎn)程新建目錄
[root@hadoop-master pssh]# pscp -r -h hosts.text ./* /usr/local [1] 14:10:31 [SUCCESS] hadoop-slave1 [2] 14:10:34 [FAILURE] hadoop-slave2 Exited with error code 1 [3] 14:10:34 [FAILURE] hadoop-slave3 Exited with error code 1prsync 并行傳輸文件到遠(yuǎn)程
傳文件,并且支持遠(yuǎn)程新建目錄
[root@hadoop-master pssh]# pscp -r -h hosts.text hosts.text /usr/local/pssh/ [1] 14:17:18 [FAILURE] hadoop-slave1 Exited with error code 1 [2] 14:17:21 [FAILURE] hadoop-slave2 Exited with error code 1 [3] 14:17:21 [FAILURE] hadoop-slave3 Exited with error code 1對(duì)比
[root@hadoop-master pssh]# prsync -r -h hosts.text hosts.text /usr/local/pssh/ [1] 14:18:08 [SUCCESS] hadoop-slave1 [2] 14:18:11 [FAILURE] hadoop-slave2 Exited with error code 255 [3] 14:18:11 [FAILURE] hadoop-slave3 Exited with error code 255pslurp從遠(yuǎn)程拉取到本地
pslurp從遠(yuǎn)程拉取文件到本地,在本地自動(dòng)創(chuàng)建目錄名為遠(yuǎn)程主機(jī)ip的目錄,將拉取的文件放在對(duì)應(yīng)主機(jī)IP目錄下
格式:pslurp -h ip.txt -L <本地目錄> <遠(yuǎn)程目錄/文件> <本地重命名>
這個(gè)會(huì)根據(jù)配置的ip或者h(yuǎn)ost創(chuàng)建文件夾目錄
drwxr-xr-x. 2 root root 22 8月 11 14:26 hadoop-slave1 drwxr-xr-x. 2 root root 6 8月 11 14:24 hadoop-slave2 drwxr-xr-x. 2 root root 6 8月 11 14:24 hadoop-slave3pnuke遠(yuǎn)程批量killall
[root@hadoop-master pssh]# pnuke -h hosts.text java [1] 14:32:04 [SUCCESS] hadoop-slave1 [2] 14:32:06 [FAILURE] hadoop-slave2 Exited with error code 255 [3] 14:32:06 [FAILURE] hadoop-slave3 Exited with error code 255可能遇到遠(yuǎn)程腳本無法執(zhí)行問題
解決參考:《ssh連接遠(yuǎn)程主機(jī)執(zhí)行腳本的環(huán)境變量問題》
總結(jié)
以上是生活随笔為你收集整理的CentOS7下安装pssh并使用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 每天学一点儿shell:shell字符串
- 下一篇: 每天学一点儿shell:linux常用快