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