2017-08-15 96 views
1

我想寫一個Python腳本,讓我ssh到一臺主機,運行curl命令,然後解析命令的輸出。Python腳本訪問使用ssh和運行命令的主機在主機

我試圖像

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

然而,curl命令不會在服務器上執行。我進入服務器,但沒有從python腳本連接到它。我需要能夠執行curl命令和訪問輸出,所以我可以解析它。任何想法我可以做到這一點?謝謝。

+0

爲什麼不使用pycurl? –

回答

0

要訪問你運行任何命令的輸出,使用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

0

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

相關問題