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 的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | 26c06231988b1d707f5e2c9d10074fa3d69f8f1e15ef514026d137403d4567ac |
|
MD5 | e689041210e477973bc781732b6223ff |
|
BLAKE2b-256 | 27170f8666fe93e4fc9a91b786cf374b7e94b081f543624921d019d66b69afb3 |