如何从Python脚本运行多个外部命令

时间:2017-12-05 21:27:30

标签: python scripting

我有一个要求,我必须使用python脚本在终端中运行这些命令。要求是这样的:

ssh abc.xyz.com

ssh到该机器后,ssh到环境

ssh qa

然后在环境中运行一些命令

我尝试使用os.system()并使用subprocess.call()来实现这一点,但没有运气。

具体来说,我试过这样做:

import subprocess
from time import sleep
subprocess.call("ssh abc.def.com", shell=True)
subprocess.call("python", shell=True)
sleep(0.3)
subprocess.call("ssh qa", shell=True)

1 个答案:

答案 0 :(得分:1)

我不确定您使用子进程连接远程服务器和执行命令的方法。

相反,您可以使用paramiko模块连接远程服务器并执行命令

import paramiko 
ssh=paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect('192.168.1.26',port=22,username='root',password='default')

# you can use your own commands in exec_command()

stdin,stdout,stderr=ssh.exec_command('echo 123')
output=stdout.readlines()
print '\n'.join(output)