我想使用Python连接并在远程服务器上执行进程.我希望能够获得进程的返回码和stderr(如果有的话).有没有人曾经做过这样的事情.我用ssh完成了它,但我想用Python脚本来做.
干杯.
acu*_*ich 42
使用为此目的而创建的名为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()
Run Code Online (Sandbox Code Playgroud)
更新:用于使用该ssh模块的示例,但现在已弃用,paramiko是在python中提供ssh功能的最新模块.
sth*_*sth 25
好吧,你可以从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]
Run Code Online (Sandbox Code Playgroud)