pypsh-cli用于在所有与
pypsh的Python项目详细描述
pypsh是一个简单的命令行工具,可以在多个 东道主。
它通过paramiko/cite>python库使用ssh。
为什么要用Pypsh而不是DSH?
因为用dsh管理组文件很乏味。Pypsh不需要 配置,它只是工作。
与dsh类似,pypsh可用于在 平行的。此外,还可以将文件复制到 一次。有关更多使用说明,请参见下文。
命令或文件复制操作将在 known_承载文件并匹配给定的正则表达式。
这意味着为了让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本身仅接收到一个参数时才支持管道。 因此,不可能将其与其他参数(如 间隔
将文件复制到多个主机
将给定文件复制到一组主机:
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
有时将pypsh命令指向本地开发很有用 分行:
pip install --upgrade --force-reinstall --editable .
但通常这样调用它就足够了:
python pypsh/main.py ...