我有一个要求,我必须使用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)
答案 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)