Python脚本访问使用ssh和运行命令的主机在主机

问题描述:

我想写一个Python脚本,让我ssh到一台主机,运行curl命令,然后解析命令的输出。Python脚本访问使用ssh和运行命令的主机在主机

我试图像

os.system('ssh HOST') 
os.system('curl ...') 

然而,curl命令不会在服务器上执行。我进入服务器,但没有从python脚本连接到它。我需要能够执行curl命令和访问输出,所以我可以解析它。任何想法我可以做到这一点?谢谢。

+0

为什么不使用pycurl? –

要访问你运行任何命令的输出,使用subprocess模块。它对你运行的os命令提供了很多控制。这是一段代码片段。

import subprocess 
process_object = subprocess.Popen(['cat','myfile.txt'],stdout=subprocess.PIPE , stderr = subprocess.STDOUT) ; 
output = process_object.stdout.read() 

同样,您的使用['ssh','HOST','argument2','argument3']为您的实施。我不确定这是否能解决你的问题。但它有助于获得输出。

+0

我怎么会拿在卷曲参数作为来自用户的输入的一部分吗?例如参数2必须像“卷曲-s‘输入’”,用户可以指定输入。 – ashkash

在您的ssh(1)命令中提供curl(1)的呼叫,如ssh [email protected] curl somehost/somefile -o -。使用python子流程模块来获得结果。