我想寫一個Python腳本,讓我ssh到一臺主機,運行curl命令,然後解析命令的輸出。Python腳本訪問使用ssh和運行命令的主機在主機
我試圖像
os.system('ssh HOST')
os.system('curl ...')
然而,curl命令不會在服務器上執行。我進入服務器,但沒有從python腳本連接到它。我需要能夠執行curl命令和訪問輸出,所以我可以解析它。任何想法我可以做到這一點?謝謝。
我想寫一個Python腳本,讓我ssh到一臺主機,運行curl命令,然後解析命令的輸出。Python腳本訪問使用ssh和運行命令的主機在主機
我試圖像
os.system('ssh HOST')
os.system('curl ...')
然而,curl命令不會在服務器上執行。我進入服務器,但沒有從python腳本連接到它。我需要能夠執行curl命令和訪問輸出,所以我可以解析它。任何想法我可以做到這一點?謝謝。
要訪問你運行任何命令的輸出,使用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']
爲您的實施。我不確定這是否能解決你的問題。但它有助於獲得輸出。
我怎麼會拿在捲曲參數作爲來自用戶的輸入的一部分嗎?例如參數2必須像「捲曲-s‘輸入’」,用戶可以指定輸入。 – ashkash
在您的ssh(1)
命令中提供curl(1)
的呼叫,如ssh [email protected] curl somehost/somefile -o -
。使用python子流程模塊來獲得結果。
爲什麼不使用pycurl? –