2012-10-01 3 views
10

sshを使ってリモートマシン上でシェルスクリプトを実行できます。例:リモートマシン上でpythonスクリプトを送信せずに実行する方法はありますか?

ssh -l foo 192.168.0.1 "`cat my_script.sh`" 

ここで、.pyファイルを送信せずにpythonスクリプトを実行したいとします。何か方法はありますか?

+0

あなたは明らかにスクリプトを実行して送信しています。 「リモートマシンにファイルをコピーせずに」という意味ですか? –

+0

はい、ファイルをコピーしないでください。 – ibrahim

答えて

10

これはコンピュータ上のmy_script.pyの内容をリモートコンピュータ上で実行され、pythonに渡されるechoコマンドに入れます。

ssh -l foo 192.168.0.1 "echo '`cat my_script.py`' | python" 

あなたはそれがそうのようなPythonコマンドの後にそれらを置くのと同じくらい簡単である必要があり、コマンドライン引数を追加したい場合は、次の

ssh -l foo 192.168.0.1 "echo '`cat my_script.py`' | python -testSwitch -arg 0" 

コマンドライン引数は、二重引用符内にあることを確認しますリモートホストに送信するコマンド。

+0

catコマンドの二重引用符を削除した後で動作します。だから正しい答えはこれです:ssh -l foo 192.168.0.1 "echo" cat my_script.py' '| python " – ibrahim

+0

私はもう一つのポイントを持っています!このPythonスクリプトにコマンドライン引数を与えるにはどうすればよいですか? – ibrahim

+1

これは簡単で、Pythonコマンドの後にargsを置くだけで、例を示すために答えを編集します。 –