gpt4 book ai didi

Python 最佳实践 : Whether to use subprocess/fabric calls or use a Linux script?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:29:31 25 4
gpt4 key购买 nike

我有一个用例,我需要在远程机器上运行 Linux 命令。目前,我正在使用 fabric 来实现功能。但是,我想知道使用 Shell 脚本而不是 Python 是否更好。

我的用例是设置一些服务,在 MySQL 中设置数据库,另外创建一些脚本,然后在远程机器上执行。目前,我在 Fabric 调用中嵌入了大约 50-60 行命令。
一切都必须在远程机器上执行,为此,我使用 fabric 创建了到机器的连接,并使用 run/sudo 函数运行命令。对于所有不同的命令行,我使用单独的运行方法。

如果一定要用shell脚本,我还有两种方式:

  1. 使用结构调用在远程机器上运行脚本。
  2. 将脚本通过 ssh 连接到另一台机器,并在那里运行。

什么是实现该功能的最佳 Pythonic 方式。

最佳答案

您是否考虑过使用 paramiko

这是 Brandon Rhodes 的“Python 网络编程基础”中的一个简单示例:

import paramiko

class AllowAnythingPolicy(paramiko.MissingHostKeyPolicy):
def missing_host_key(self, client, hostname, key):
return
client = paramiko.SSHClient()
client.set_missing_host_key_policy(AllowAnythingPolicy())
client.connect('127.0.0.1', username='username', password='python')

for command in 'echo "Hello, world!"', 'uname -a', 'uptime':
stdin, stdout, stderr = client.exec_command(command)
stdin.close()
print repr(stdout.read())
stdout.close()
stderr.close()

client.close()

干杯,亚瑟

关于Python 最佳实践 : Whether to use subprocess/fabric calls or use a Linux script?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29665628/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com