使用subprocess来ssh和执行命令

时间:2014-08-14 23:44:06

标签: python ssh subprocess

我需要ssh到服务器并执行一些命令并使用子进程处理响应。这是我的代码

command = 'ssh -t -t buildMachine.X.lan; sudo su - buildbot ; build-set sets/set123'
print "submitting command"
result = subprocess.Popen(command, shell=True, stdout=subprocess.PIPE, stdin=subprocess.PIPE)
print "got response"
response,err = result.communicate()
print response

这是卡住了。我已经看到其他线程正在讨论将列表而不是字符串传递给子进程并删除shell = True ..我也这样做但是没有用。

最终我需要最后一个命令的结果,即构建集,以便从中提取一些信息..帮助?

1 个答案:

答案 0 :(得分:0)

我通过使用univerio的评论

来找到解决方案

命令需要

command = 'ssh -t -t buildMachine.X.lan \'sudo su - buildbot  \'build-set sets/set123\'\''

单个命令与上一个命令的参数相似。这很有效。