pussh:并行SSH,批处理与命令行工具

pussh:并行SSH,批处理与命令行工具

pussh Parallel SSH, batch and command line oriented pussh 项目地址: https://gitcode.com/gh_mirrors/pus/pussh

pussh

在自动化运维领域, pussh 无疑是一款强大的并行SSH工具。它以批处理和命令行为核心,为系统管理员提供了极大便利。

项目介绍

pussh 是一个简单的并行SSH客户端,能够同时对多个主机执行命令。其输出结果会以主机名作为前缀,方便用户识别各主机返回的信息。pussh 支持从文件或标准输入读取主机列表,使得批量操作变得异常简便。

项目技术分析

pussh 的基本命令输出以主机名为前缀,如下所示:

$ pussh -h host1,host2bis,... uname -a
host1   : Linux host1 3.2.0-4-amd64 #1 SMP Debian 3.2.41-2 x86_64 GNU/Linux
host2bis: Linux host2 3.2.0-3-kirkwood #1 Mon Jul 23 22:36:47 UTC 2012 armv5tel GNU/Linux
...

pussh 也支持从文件读取主机列表或通过管道接收数据:

$ pussh -f servers uname -a
$ fetch-servers | pussh -f - uname -a

pussh 还可以与其他命令结合使用,例如按根文件系统使用率排序服务器:

$ pussh -f servers df -h / |grep /dev |sort -rn -k5

或者收集每台主机的硬件信息:

$ pussh -f servers -o %h-hw.txt lshw

pussh 还支持将每个SSH会话的输出管道传送到特定命令:

$ pussh -f servers -o '|grep feature' command >output

同样,pussh 也支持为SSH会话输入提供数据:

$ pussh -f servers -i file command
$ pussh -f servers -i %h.data command
$ pussh -f servers -i 'get-data %h|' command

你可以自由混合使用 -i-o 选项。

更有趣的是,pussh 可以一次性发送并执行命令(但请注意,它不会处理依赖关系,确保你的可执行文件是自包含的,或者目标主机的环境与你的环境兼容):

$ pussh -f servers -u my-deploy.sh args ...

大多数情况下,执行总时间受限于SSH连接建立的速度,而这个速度又受SSH Agent的限制。建议为特定主机调整连接速度,并保持一致。超过限定的速度可能会导致奇怪的连接错误(如ssh-agent认证失败、'no route to host'等)。

$ alias pussh='pussh -r 50'

速度主要受网络延迟的影响。你可以先通过ssh转发(ssh -A)登录到远程局域网的一台机器上,然后从那里运行 'pussh' 命令,使其尽可能靠近目标主机。以下是在千兆局域网上的一个实际基准测试:

$ time pussh -f servers -r 100 date
...
Total: 201 host(s), 4 second(s)

real    0m4.069s
user    0m7.132s
sys     0m3.140s

项目技术应用场景

pussh 适用于多种场景,例如批量更新服务器、执行系统检查、收集硬件信息、自动化部署等。以下是几个具体的应用场景:

  • 批量更新服务器:使用pussh可以同时对多台服务器执行更新操作,提高运维效率。
  • 系统监控:可以用来收集服务器状态,如磁盘使用率、内存使用情况等。
  • 自动化部署:通过pussh可以简化自动化部署流程,提高部署速度。

项目特点

  1. 简单易用:pussh 的命令行界面直观,易于上手。
  2. 并行执行:能够同时对多个主机执行命令,提高效率。
  3. 灵活输入输出:支持从文件、标准输入读取主机列表,也支持将输出结果重定向到文件或传送到其他命令。
  4. 速度快:在网络延迟较小的情况下,pussh 可以实现快速执行。

pussh 无疑是自动化运维的得力助手,其高效、灵活的特点使得它成为系统管理员不可或缺的工具之一。如果你正在寻找一款简单实用的并行SSH工具,pussh 将是你不二的选择。

pussh Parallel SSH, batch and command line oriented pussh 项目地址: https://gitcode.com/gh_mirrors/pus/pussh

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

樊元隽

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值