pssh
(Parallel SSH)是一個(gè)用于在多臺(tái)遠(yuǎn)程Linux服務(wù)器上并行執(zhí)行命令的工具
安裝pssh
:
對于Debian/Ubuntu系統(tǒng),使用以下命令安裝:
sudo apt-get install pssh
對于RHEL/CentOS系統(tǒng),使用以下命令安裝:
sudo yum install pssh
創(chuàng)建一個(gè)包含目標(biāo)服務(wù)器列表的文件。每個(gè)服務(wù)器一行,格式為[user@]host[:port]
。例如,創(chuàng)建一個(gè)名為servers.txt
的文件,內(nèi)容如下:
user1@server1.example.com
user2@server2.example.com:2222
server3.example.com
使用pssh
執(zhí)行命令。以下是一些常用的pssh
選項(xiàng):
-h
:指定包含服務(wù)器列表的文件。-l
:指定SSH登錄用戶名(如果未在服務(wù)器列表文件中指定)。-p
:設(shè)置并行進(jìn)程數(shù)(默認(rèn)為32)。-t
:設(shè)置SSH連接超時(shí)(以秒為單位,默認(rèn)為0)。-o
:指定輸出文件目錄。-e
:指定錯(cuò)誤輸出文件目錄。-A
:啟用密碼認(rèn)證(不推薦,因?yàn)榘踩暂^低)。-i
:忽略錯(cuò)誤(繼續(xù)執(zhí)行其他服務(wù)器上的命令)。-O
:設(shè)置SSH選項(xiàng)(例如,禁用HostKey檢查:-O StrictHostKeyChecking=no
)。示例命令:
pssh -h servers.txt -l myuser -p 10 -t 60 "df -h"
這將在servers.txt
中列出的服務(wù)器上并行執(zhí)行df -h
命令,使用myuser
作為SSH登錄用戶名,最多有10個(gè)并行進(jìn)程,SSH連接超時(shí)為60秒。
注意:為了避免在執(zhí)行命令時(shí)輸入密碼,建議使用SSH密鑰對進(jìn)行身份驗(yàn)證。在所有目標(biāo)服務(wù)器上將公鑰添加到~/.ssh/authorized_keys
文件中,并確保私鑰在本地可用。