pssh(1) - Linux man page

名字
pssh-并行ssh程序
概要
pssh [-vAiIP] [-h hosts_file] [-H [user@]host[:port]] [-l user] [-p par] [-o outdir] [-e errdir] [-t timeout] [-O options] [-x args] [-X arg] command …

pssh -I [-vAiIP] [-h hosts_file] [-H [user@]host[:port]] [-l user] [-p par] [-o outdir] [-e errdir] [-t timeout] [-O options] [-x args] [-X arg] [command …]

描述
psshpssh是一个在多个主机上并行执行ssh的程序。 它提供了诸如向所有进程发送输入,将密码传递给ssh,将输出保存到文件和超时的功能。
PSSH_NODENUM和PSSH_HOST环境变量被发送到远程主机。 PSSH_NODENUM变量为每个ssh连接分配一个唯一的编号,从0开始计数。 PSSH_HOST变量被分配在主机列表中指定的主机名称。 请注意,sshd默认删除环境变量,因此远程主机上的sshd_config必须包含以下行:

AcceptEnv PSSH_NODENUM PSSH_HOST

选项
-h host_file执行命令的远程主机列表
–hosts host_file
从给定的host_file读取主机。 主机文件中的行格式为[user @] host [:port],可以包含空行和注释(以“#”开头的行)。 如果给出多个主机文件(-h选项被多次使用),则pssh的行为就像这些文件连接在一起。 如果主机被指定多次,那么pssh将连接给定的次数。
-H
[user@]host[:port]

–host

[user@]host[:port]

-H

“[user@]host[:port] [ [user@]host[:port ] … ]”

–host

“[user@]host[:port] [ [user@]host[:port ] … ]”
将给定的主机字符串添加到主机列表。 此选项可以多次给出,可以与-h选项一起使用。
-l user
–user user
使用给定的用户名作为未特别指定用户的任何主机条目的默认值。
-p parallelism
–par parallelism
使用给定的数字作为并发连接的最大数量。
-t timeout
–timeout timeout
在给定的秒数之后连接超时。 值为0,pssh不会超时任何连接。
-o outdir
–outdir outdir
将标准输出保存到给定目录中的文件。 文件名的格式为[user @] host [:port] [.num],其中用户和端口仅包含在明确指定它们的主机中。 该号码是每次为不止一次指定的主机增加的计数器。
-e errdir
–errdir errdir
将标准错误保存到给定目录中的文件。 文件名与-o选项的格式相同。
-x args
–extra-args args
传递额外的SSH命令行参数(有关SSH参数的更多信息,请参阅ssh(1)手册页)。 此选项可以多次指定。 参数被处理为在空格上分割,保护引号内的文本,并使用反斜杠进行转义。 要传递参数而不进行此类处理,请改用-X选项。
-X arg
–extra-arg arg
通过单个SSH命令行参数(有关SSH参数的更多信息,请参阅ssh(1)手册页)。 与-x选项不同,对参数不进行处理,包括分词。 要传递多个命令行参数,请为每个参数使用一次选项。
-O options
–options options
SSH配置文件中使用的格式的SSH选项(有关详细信息,请参阅ssh_config(5)手册页)。 此选项可以多次指定。
-A
–askpass
提示输入密码并将其传递给ssh。 密码可用于解锁密钥或进行密码认证。 密码以相当安全的方式传输(例如,它不会显示在参数列表中)。 但是,请注意,系统上的root用户可能会窃取密码。
-i
–inline
每个主机完成时显示标准输出和标准错误。
–inline-stdout
每个主机完成时显示标准输出(但不是标准错误)。
-v
–verbose
使用-i和\ options包含来自ssh的错误消息。
-I
–send-input
读取输入并发送到每个ssh进程。 由于ssh允许在标准输入上发送命令脚本,所以可以使用-I选项来代替命令参数。
-P
–print
显示输出到达。 此选项的有用性有限,因为来自不同主机的输出是交错的。
例子

连接到host1和host2,并从每个打印“hello,world”:
pssh -i -H“host1 host2”echo“hello,world”

从文件hosts.txt中指定的每个主机打印“hello,world”
pssh -i -h hosts.txt echo“hello,world”

以root身份运行命令,并提示输入root密码:
pssh -i -h hosts.txt -A -l root echo hi

运行一个长命令没有超时:
pssh -i -h hosts.txt -t 0 sleep 10000

如果文件hosts.txt有大量条目,例如100,那么并行选项也可以设置为100,以确保命令同时运行:
pssh -i -h hosts.txt -p 100 -t 0 sleep 10000

运行命令而不检查或保存主机密钥:
pssh -i -H host1 -H host2 -x“-O StrictHostKeyChecking = no -O UserKnownHostsFile = / dev / null -O GlobalKnownHostsFile = / dev / null”echo hi

打印每个连接的节点编号(将打印0,1和2):
pssh -i -H host0 -H host1 -H host2 echo $ PSSH_NODENUM’
提示

如果您有一组主机经常与特定选项连接,则创建别名可能会有所帮助,例如:

别名pssh_servers =“pssh -h /path/to/server_list.txt -l root -A”
ssh_config文件可以包含任意数量的主机部分。 每个主机条目指定仅适用于给定主机的ssh选项。 如果包含HostName选项,主机定义甚至可以像别名一样行为。 这个ssh功能与pssh主机文件相结合,提供了极大的灵活性。

退出状态
pssh的退出状态代码如下:

0成功

1杂项错误

2语法或使用错误

3至少有一个进程被信号杀死或超时。

4所有进程已完成,但至少有一个ssh进程报告错误(退出状态255)。

5没有ssh错误,但至少有一个远程命令具有非零退出状态。

作者:Brent N. Chun bnc@theether.org和Andrew McNabb amcnabb@mcnabbs.org
http://code.google.com/p/parallel-ssh/

也可以看看
ssh(1),ssh_config(5),pscp(1),prsync(1),pslurp(1),pnuke(1)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值