一、介紹
首先我們來了解下什麼是pssh,它是幹嘛用的?pssh是一個python編寫可以在多臺服務器上執行命令的工具,也可以實現文件複製。換而言之就是一個批量管理多臺服務器的一個小工具。常常我們有這樣的經歷,就是需要在很多臺主機上執行同一命令,在以前我們需要編寫一個腳本,然後寫一個循環,然後寫上要執行的命令,感覺挺麻煩的,有了pssh這個工具,很多事情都不需要我們編寫腳本去完成了,用pssh管理多臺主機,就好像在自己主機上執行命令一樣,我們不再編寫腳本就可以實現管理多臺主機。接下來我們來安裝使用pssh吧
二、安裝
yum安裝
yum install -y pssh
查看版本
[root@localhost ~]# pssh --version
2.3.1
pssh命令
[root@localhost ~]# pssh --help
Usage: pssh [OPTIONS] command [...]
Options:
--version 展示版本信息
--help 展示幫助信息
-h HOST_FILE, --hosts=HOST_FILE 主機文件(每行 [user@]host[:port])
-H HOST_STRING, --host=HOST_STRING 主機地址(格式 "[user@]host[:port]")
-l USER, --user=USER 用戶名(可選)
-p PAR, --par=PAR 最大並行線程數(可選)
-o OUTDIR, --outdir=OUTDIR 標準輸出文件的輸出目錄(可選)
-e ERRDIR, --errdir=ERRDIR 錯誤輸出文件的輸出目錄(可選)
-t TIMEOUT, --timeout=TIMEOUT 每個主機的超時時間(秒)(0 =無超時)(可選)
-O OPTION, --option=OPTION SSH選項(可選)
-v, --verbose 打開警告和診斷消息(可選)
-A, --askpass 要求輸入密碼(可選)
-x ARGS, --extra-args=ARGS 額外的命令行參數
-X ARG, --extra-arg=ARG 額外的命令行參數
-i, --inline 每個服務器內部處理信息輸出
--inline-stdout 每個服務器的內聯標準輸出
-I, --send-input 從標準輸入讀取並作爲輸入發送到ssh
-P, --print 打印輸出
Example: pssh -h hosts.txt -l irb2 -o /tmp/foo uptime
三、使用
1、首先要服務器之間配置免密鑰登陸
安裝ssh-keygen、ssh-copy-id
yum install -y ssh-keygen
yum install -y ssh-copy-id
生成公鑰
ssh-keygen 加兩次回車
將公鑰文件發送到指定的服務器
ssh-copy-id 192.168.1.171
ssh-copy-id 192.168.1.172
2、創建一個服務器列表文件
vim iplist
內容格式[user@]host[:port]
root@192.168.1.171
root@192.168.1.172
3、輸入命令測試
在這兩臺主機上生成test文件內容爲123
[root@localhost ~]# pssh -h iplist 'echo 123 > test'
[1] 14:48:45 [SUCCESS] [email protected]
[2] 14:48:45 [SUCCESS] [email protected]
執行成功後在這兩臺主機上會生成test文件