web-dev-qa-db-ja.com

ローカルpythonスクリプトをリモートマシンで実行する

pythonスクリプトをリモートマシンのディスク上にローカルに実行します。以前は次のようにbashスクリプトを実行していました:

cat script.sh | ssh user@machine

Pythonスクリプトに対して同じようにする方法がわかりません。

7
Trismegistos

他の人が言ったように、sshにパイプします。しかし、あなたがしたいことは、適切な議論をすることです。 -uを追加して、sshからの出力を正しく取得する必要があります。そして、出力とその後の引数を処理するために-を追加したいとします。

ssh user@Host python -u - < script.py

コマンドライン引数を指定する場合は、-の後に追加します。

ssh user@Host python -u - --opt arg1 arg2 < script.py
5
Arcege

Python用のremrunnerパッケージを使用します。ローカルスクリプトをリモートマシンにコピーして実行します。

pip install remrunner

python
>> from rumrunner import runner

>> r = runner.Runner(REMOTE_Host_IPADDR, REMOTE_Host_USER)
>> rval, stdout, stderr = r.run('/path/to/local/script.py')
>> if rval:
    print stderr
else:
    print stdout
2