pssh
(Parallel SSH)是一个用于在多台远程计算机上并行执行命令或传输文件的工具
-
使用
--inline
选项显示输出:pssh
默认将每台主机的输出分开显示,但有时候我们希望看到实时的、交错的输出。这可以通过添加--inline
选项来实现。示例:
pssh --hosts=hostfile.txt --inline uptime
-
使用
--timeout
设置超时时间: 如果你的命令在某些主机上运行时间过长,你可以使用--timeout
选项设置一个超时时间。超时后,pssh
会终止该主机上的命令执行。示例:
pssh --hosts=hostfile.txt --timeout=60 --inline uptime
-
使用
--askpass
提示输入密码: 当需要密码进行身份验证时,可以使用--askpass
选项在执行命令前提示输入密码。示例:
pssh --hosts=hostfile.txt --askpass --inline uptime
-
使用
--par
并行度控制: 如果你希望限制并发连接的数量,可以使用--par
选项指定并行度。示例:
pssh --hosts=hostfile.txt --par=5 --inline uptime
-
使用
--outdir
保存输出到文件: 如果你希望将每台主机的输出保存到单独的文件中,可以使用--outdir
选项指定一个目录。示例:
pssh --hosts=hostfile.txt --outdir=output --inline uptime
-
使用
--host-args
为每台主机提供不同的参数: 如果你希望为每台主机提供不同的参数,可以使用--host-args
选项。这需要在主机文件中为每台主机指定参数。示例:
# hostfile.txt host1 arg1 host2 arg2
pssh --hosts=hostfile.txt --host-args --inline 'echo %h %a'
-
使用
--filter-hosts
筛选主机: 如果你只想在部分主机上执行命令,可以使用--filter-hosts
选项。示例:
pssh --hosts=hostfile.txt --filter-hosts='host[1-3]' --inline uptime
-
使用
--print
打印执行结果: 如果你希望查看执行结果的统计信息,可以使用--print
选项。示例:
pssh --hosts=hostfile.txt --print uptime
-
使用
--recursive
递归执行命令: 如果你希望在远程主机上递归地执行命令,可以使用--recursive
选项。示例:
pssh --hosts=hostfile.txt --recursive --inline 'find /path -name "*.txt"'
-
使用
--scp
复制文件:pssh
还支持使用--scp
选项在多台主机之间复制文件。示例:
pssh --hosts=hostfile.txt --scp /local/path/file.txt /remote/path/
通过这些技巧,你可以更高效地使用pssh
在多台远程计算机上执行命令和传输文件。