2017-08-15 30 views
1

私はホストにsshできるcurlコマンドを実行し、コマンドの出力を解析するpythonスクリプトを書こうとしています。sshでホストにアクセスし、ホストでコマンドを実行するPythonスクリプト

私はしかし、curlコマンドは、サーバ上で実行されません

os.system('ssh HOST') 
os.system('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

curl引数の一部をユーザーからの入力としてどのように取りますか?例えば、argument2は 'curl -s'のようなものでなければなりません。ここで、ユーザーは入力を指定できます。 – ashkash

0

コマンドのcurl(1)へのコールをssh [email protected] curl somehost/somefile -o -のように指定します。結果を得るには、pythonサブプロセスモジュールを使用します。

関連する問題