gpt4 book ai didi

python - 使用 subprocess.popen 登录后如何保持 ssh session 打开?

转载 作者:行者123 更新时间:2023-12-04 16:08:05 24 4
gpt4 key购买 nike

我是 Python 的新手。

我正在尝试通过 SSH 连接到服务器以执行某些操作。但是,在执行操作之前,我需要加载一个配置文件,这需要 60-90 秒。加载配置文件后,有没有办法让 SSH session 保持打开状态,以便我稍后执行操作?

p = subprocess.Popen("ssh abc@xyz'./profile'", stdout=subprocess.PIPE, shell=True)
result = p.communicate()[0]
print result
return result

这将加载配置文件并退出。有没有办法保持上面的 ssh session 打开并运行一些命令?

例子:
 p = subprocess.Popen("ssh abc@xyz'./profile'", stdout=subprocess.PIPE, shell=True)
<More Python Code>
<More Python Code>
<More Python Code>
<Run some scripts/commands on xyz server non-interactively>

加载配置文件后,我想在远程服务器上运行一些脚本/命令,只需执行以下操作即可:
 p = subprocess.Popen("ssh abc@xyz './profile;**<./a.py;etc>**'", stdout=subprocess.PIPE, shell=True)

但是,一旦完成,它就会存在,下次我想在上面的服务器上执行一些脚本时,我需要再次加载配置文件(这需要 60-90 秒)。我试图找出一种方法,我们可以创建某种隧道(或任何其他方式),其中 ssh 连接在加载配置文件后保持打开状态,这样用户就不必在任何情况下等待 60-90 秒被执行。

我无权剥离个人资料。

最佳答案

试试像 asyncssh 这样的 ssh 库或 spur .保持连接对象应该保持 session 打开。
你可以发送一个虚拟命令,如 date以防止超时。

关于python - 使用 subprocess.popen 登录后如何保持 ssh session 打开?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47887790/

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