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