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 arg2pssh --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在多台远程计算机上执行命令和传输文件。