在一个subprocess.Popen列表中通过ssh发送两个命令

时间:2017-08-01 16:53:43

标签: python ssh command

#!/usr/bin/python

import subprocess
import sys

HOST=raw_input("\nInsert server(ex: xxXX.city):\n\n")
IP=raw_input("\nInsert ip:\n\n")
print ''
COMMAND='show arp hostname %s' % IP
COMMAND2='show route table inet.0 %s' % IP
ssh = subprocess.Popen(["ssh", "%s" % HOST, COMMAND, COMMAND2],
                       shell=False,
                       stdout=subprocess.PIPE,
                       stderr=subprocess.PIPE)
result = ssh.stdout.readlines()
if result == 'xxx':
    error = ssh.stderr.readlines()
    print >>sys.stderr, "ERROR: %s" % error
else:
    print ''.join(result)

我收到此错误

错误:语法错误:显示

我猜测子进程中链接的两个命令存在问题.Popen。我说这是因为看起来它执行每一个没有问题。只有当我把它们链接起来才能得到错误时才会这样。我查了一下,但是我还没有找到一些关于与Popen一起制作两个命令的清楚的东西。有没有办法让它们像上面一样工作但有点扭曲或者我是否需要改变子流程?谢谢

1 个答案:

答案 0 :(得分:0)

在朋友的帮助下问题解决了这样的问题:

ssh = subprocess.Popen(["ssh", "%s" % HOST, ';'.join([COMMAND, COMMAND2])],