这是并行 ssh 命令,可以使用我们的多个免费在线工作站之一在 OnWorks 免费托管服务提供商中运行,例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器
程序:
您的姓名
parallel-ssh — 并行 ssh 程序
概要
并行ssh [-vAiIP[-h 主机文件[-H [用户@]主持人[:端口]][-l 用户[-p 平价[-o
外向[-e 错误目录[-t 超时[-O 选项[-x ARGS[-X ARG] 命令 ...
并行ssh -I [-vAiIP[-h 主机文件[-H [用户@]主持人[:端口]][-l 用户[-p 平价[-o
外向[-e 错误目录[-t 超时[-O 选项[-x ARGS[-X ARG[命令 ...]
商品描述
并行ssh 是一个在多个主机上并行执行 ssh 的程序。 它
提供诸如向所有进程发送输入、将密码传递给
ssh,将输出保存到文件,并超时。
PSSH_NODENUM 和 PSSH_HOST 环境变量被发送到远程主机。 这
PSSH_NODENUM 变量为每个 ssh 连接分配一个唯一编号,从 0 开始
和计数。 PSSH_HOST 变量被分配了主机名
主机列表。 注意 sshd 默认丢弃环境变量,所以 sshd_config on
远程主机必须包含以下行:
接受环境 PSSH_NODENUM PSSH_HOST
配置
-h 主机文件
--主机 主机文件
从给定的读取主机 主机文件. 主机文件中的行的格式为
[用户@]主持人[:端口] 并且可以包含空行和注释(以
“#”)。 如果给出多个主机文件( -h 选项被多次使用),
然后并行 ssh 的行为就好像这些文件连接在一起一样。 如果一个
主机被多次指定,然后并行 ssh 将连接给定的数字
的时间。
-H [用户@]主持人[:端口]
- 主持人 [用户@]主持人[:端口]
-H "[用户@]主持人[:端口] [ [用户@]主持人[:端口 ] ...]”
- 主持人 "[用户@]主持人[:端口] [ [用户@]主持人[:端口 ] ...]”
将给定的主机字符串添加到主机列表中。 这个选项可以被赋予多个
次,并可与 -h 选项。
-l 用户
- 用户 用户
使用给定的用户名作为任何主机条目的默认值
指定用户。
-p 排比
--par 排比
使用给定的数量作为最大并发连接数。
-t 超时
- 暂停 超时
在给定的秒数后使连接超时。 值为 0 时,
并行 ssh 不会使任何连接超时。
-o 外向
--outdir 外向
将标准输出保存到给定目录中的文件。 文件名的形式
[用户@]主持人[:端口][。NUM] 其中用户和端口仅包含在以下主机中
明确指定它们。 该数字是一个计数器,每次递增
多次指定的主机。
-e 错误目录
--错误目录 错误目录
将标准错误保存到给定目录中的文件。 文件名相同
形式与 -o 选项。
-x ARGS
--额外参数 ARGS
传递额外的 SSH 命令行参数(请参阅 SSH(1) 手册页了解更多
有关 SSH 参数的信息)。 可以多次指定此选项。
处理参数以在空格上拆分,保护引号内的文本,以及
用反斜杠转义。 要在不进行此类处理的情况下传递参数,请使用 -X
选项。
-X ARG
--额外参数 ARG
传递单个 SSH 命令行参数(请参阅 SSH(1) 手册页了解更多
有关 SSH 参数的信息)。 不像 -x 选项,不执行任何处理
在论点上,包括分词。 传递多个命令行
参数,对每个参数使用一次该选项。
-O 选项
- 选项 选项
SSH 配置文件中使用的格式的 SSH 选项(请参阅 ssh_配置(5)
手册页以获取更多信息)。 可以多次指定此选项。
-A
--askpass
提示输入密码并将其传递给 ssh。 密码可用于
解锁密钥或进行密码验证。 密码在一个
相当安全的方式(例如,它不会出现在参数列表中)。 然而,被
意识到您系统上的 root 用户可能会拦截密码。
-i
- 排队
在每个主机完成时显示标准输出和标准错误。
--内联标准输出
在每个主机完成时显示标准输出(但不是标准错误)。
-v
--详细
包括来自 ssh 的错误消息 -i 和 \ 选项。
-I
--发送输入
读取输入并发送到每个 ssh 进程。 由于 ssh 允许命令脚本
在标准输入上发送, -I 可以使用选项代替命令参数。
-P
- 打印
输出到达时显示。 此选项的用处有限,因为输出
来自不同主机的交错。
示例
连接到主机 1 和主机 2,并分别打印“hello, world”:
parallel-ssh -i -H "host1 host2" echo "hello, world"
从文件 hosts.txt 中指定的每个主机打印“hello, world”:
parallel-ssh -i -h hosts.txt echo "hello, world"
以 root 身份运行命令并提示输入 root 密码:
并行 ssh -i -h hosts.txt -A -l root echo hi
运行长命令而不超时:
并行 ssh -i -h hosts.txt -t 0 睡眠 10000
如果文件 hosts.txt 有大量条目,比如 100,那么并行选项
也可以设置为 100 以确保命令同时运行:
并行 ssh -i -h hosts.txt -p 100 -t 0 睡眠 10000
在不检查或保存主机密钥的情况下运行命令:
并行 ssh -i -H host1 -H host2 -x "-O StrictHostKeyChecking=no -O
UserKnownHostsFile=/dev/null -O GlobalKnownHostsFile=/dev/null" echo hi
打印每个连接的节点号(这将打印 0、1 和 2):
并行 ssh -i -H 主机 1 -H 主机 1 -H 主机 2 'echo $PSSH_NODENUM'
TIPS
如果您有一组经常使用特定选项连接的主机,则可能是
有助于创建别名,例如:
别名 pssh_servers="parallel-ssh -h /path/to/server_list.txt -l root -A"
ssh_config 文件可以包含任意数量的 Host 部分。 每个主机条目
指定仅适用于给定主机的 ssh 选项。 主机定义甚至可以
如果包含 HostName 选项,则行为类似于别名。 这个 ssh 功能,结合
使用并行 ssh 主机文件,提供了极大的灵活性。
退出 状态
来自parallel-ssh的退出状态码如下:
0 成功
1 杂项错误
2 语法或使用错误
3 至少有一个进程被信号杀死或超时。
4 所有进程都完成了,但至少有一个 ssh 进程报错(退出
状态 255)。
5 没有 ssh 错误,但至少有一个远程命令有非零退出
状态。
作者
布伦特·N·春 (Brent N. Chun) 编剧[电子邮件保护]> 和安德鲁·麦克纳布[电子邮件保护]>.
http://code.google.com/p/parallel-ssh/
使用 onworks.net 服务在线使用并行 ssh