跳转到主要内容

pypsh - 在所有已知主机上执行并行ssh命令的cli工具

项目描述

pypsh是一个简单的命令行工具,用于在多个主机上并行执行命令。

在内部,它通过Python的paramiko库使用ssh

为什么选择而不是dsh?

因为使用dsh管理组文件很繁琐。Pypsh无需配置,直接使用。

与dsh类似,pypsh可以用来在多个主机上并行执行命令。此外,还可以一次将文件复制到多个主机。下面是进一步使用说明。

命令或文件复制操作将在任何在known_hosts文件中并且与给定正则表达式匹配的主机上执行。

这意味着为了让pypsh了解一个主机,至少需要使用纯ssh连接到它一次。

命令执行

要在与给定正则表达式匹配的一组主机上执行命令

pypsh <hostregex> <cmd-to-execute>

例如:

pypsh "role\d+\.customer\.your\.domain" "uptime"

除了并行执行命令外,还可以逐个执行命令。要这样做,请使用

pypsh "role\d+\.customer\.your\.domain" --interval 0.1 cmd "uptime"

或者要命令之间等待(这在重启集群中的服务如elasticsearch时可能很有用)

pypsh "role\d+\.customer\.your\.domain" -i 60 cmd "uptime"

pypsh还可以从stdin读取。因此可以将命令管道输入其中

echo "uptime" | pypsh "myhosts[0-9]"

将文件复制到多个主机

要将给定文件复制到一组主机

pypsh "my\.domains\d+\.com" copy /tmp/here/myfile.txt /tmp/remote/file.txt

安装

pypsh可以使用pip安装

pip install pypsh

开发

要为pypsh工作,请检出git仓库,创建虚拟环境并安装依赖项

git clone https://github.com/mfussenegger/pypsh.git
cd pypsh
mkvirtualenv pypsh
pip install -r requirements.txt

有时将命令指向本地开发分支很有用

pip install --upgrade --force-reinstall --editable .

但通常可以这样调用它:

python pypsh/main.py ...

项目详细信息


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分发

pypsh-0.7.3.tar.gz (5.5 kB 查看散列)

上传时间

由以下支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面