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