Run local python script on remote machine
As others have said, pipe it into ssh. But what you will want to do is give the proper arguments. You will want to add -u
to get the output back from ssh properly. And want to add -
to handle the output and later arguments.
ssh user@host python -u - < script.py
If you want to give command line arguments, add them after the -
.
ssh user@host python -u - --opt arg1 arg2 < script.py
Use the remrunner package for python. It copies local scripts to a remote machine and then executes them.
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