pssh
(Parallel SSH)是一個用于在多臺遠程計算機上并行執行SSH命令的工具
在Debian/Ubuntu系統上,可以使用以下命令安裝:
sudo apt-get install pssh
在CentOS/RHEL系統上,可以使用以下命令安裝:
sudo yum install pssh
要在多臺主機上運行單個命令,可以使用-h
選項指定主機文件。例如,如果有一個名為hosts.txt
的文件,其中包含要連接到的主機列表,可以使用以下命令:
pssh -h hosts.txt -l username -A 'command'
這里,-l
選項用于指定登錄用戶名,-A
選項用于提示輸入密碼。
要在多臺主機上運行多個命令,可以創建一個包含命令列表的文件,然后使用-i
選項指定該文件。例如,如果有一個名為commands.txt
的文件,其中包含要運行的命令列表,可以使用以下命令:
pssh -h hosts.txt -l username -A -i commands.txt
默認情況下,pssh
會在所有主機上同時運行命令。要限制并發數量,可以使用-p
選項。例如,要將并發數量限制為10,可以使用以下命令:
pssh -h hosts.txt -l username -A -p 10 'command'
要設置命令執行的超時時間(以秒為單位),可以使用-t
選項。例如,要將超時時間設置為60秒,可以使用以下命令:
pssh -h hosts.txt -l username -A -t 60 'command'
要將輸出保存到文件,可以使用-o
選項。例如,要將輸出保存到名為output.txt
的文件,可以使用以下命令:
pssh -h hosts.txt -l username -A -o output.txt 'command'
要將錯誤輸出保存到文件,可以使用-e
選項。例如,要將錯誤輸出保存到名為error.txt
的文件,可以使用以下命令:
pssh -h hosts.txt -l username -A -e error.txt 'command'
要使用SSH密鑰進行身份驗證,可以使用-i
選項指定密鑰文件。例如,要使用名為id_rsa
的密鑰文件,可以使用以下命令:
pssh -h hosts.txt -l username -i /path/to/id_rsa 'command'
要向ssh
命令傳遞額外的選項,可以使用-O
選項。例如,要禁用StrictHostKeyChecking,可以使用以下命令:
pssh -h hosts.txt -l username -A -O StrictHostKeyChecking=no 'command'
要使用自定義端口進行SSH連接,可以使用-p
選項指定端口號。例如,要使用端口2222,可以使用以下命令:
pssh -h hosts.txt -l username -A -p 2222 'command'
更多關于pssh
的信息和選項,請參閱官方文檔:https://linux.die.net/man/1/pssh