当前位置:  开发笔记 > 编程语言 > 正文

如何使用python远程执行进程

如何解决《如何使用python远程执行进程》经验,为你挑选了3个好方法。

我想使用Python连接并在远程服务器上执行进程.我希望能够获得进程的返回码和stderr(如果有的话).有没有人曾经做过这样的事情.我用ssh完成了它,但我想用Python脚本来做.

干杯.



1> aculich..:

使用为此目的而创建的名为paramiko的ssh模块而不是使用subprocess.这是一个例子如下:

from paramiko import SSHClient
client = SSHClient()
client.load_system_host_keys()
client.connect("hostname", username="user")
stdin, stdout, stderr = client.exec_command('program')
print "stderr: ", stderr.readlines()
print "pwd: ", stdout.readlines()

更新:用于使用该ssh模块的示例,但现在已弃用,paramiko是在python中提供ssh功能的最新模块.



2> sth..:

好吧,你可以从python中调用ssh ...

import subprocess
ret = subprocess.call(["ssh", "user@host", "program"]);

# or, with stderr:
prog = subprocess.Popen(["ssh", "user@host", "program"], stderr=subprocess.PIPE)
errdata = prog.communicate()[1]


您需要确保对远程主机具有基于密钥的身份验证以及正确的密钥.否则,系统将提示您输入密码.

3> RickyA..:

也许如果你想包装ssh调用的细节你可以使用Fabric 这个库适用于部署和服务器管理,但它也可能对这些问题有用.

还可以看看芹菜.这为各种代理实现了Python/Django的任务队列.对你的问题可能有点过分,但如果你打算在多台机器上调用更多的功能,它将为你节省很多管理连接的麻烦.

推荐阅读
oDavid_仔o_880
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有