2012-10-01 145 views
10

Puedo ejecutar un script de shell en una máquina remota con ssh. Por ejemplo:¿Hay alguna forma de ejecutar un script de python en una máquina remota sin enviarlo?

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

Ahora quiero ejecutar un script de python sin enviar el archivo .py. ¿Hay alguna manera?

+0

Obviamente está enviando el script que se ejecutará. ¿Quiere decir "sin copiar un archivo a la máquina remota"? –

+0

Sí, quiero decir sin copiar un archivo. – ibrahim

Respuesta

10

Esto pondrá los contenidos de my_script.py en su computadora en un comando de eco que se realiza en la computadora remota y se pasa a python.

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

Si desea agregar argumentos de línea de comandos debería ser tan simple como poner ellos después de que el comando python, así:

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

Asegúrese de que los argumentos de línea de comandos están dentro de las comillas dobles de el comando que está enviando al host remoto.

+0

Esto funciona después de eliminar las comillas dobles del comando cat. Así que la respuesta correcta será esta: ssh -l foo 192.168.0.1 "echo" 'cat my_script.py' '| python" – ibrahim

+0

¡Tengo otro punto! ¿Cómo puedo dar un argumento de línea de comando a este script python? – ibrahim

+1

Eso debería ser fácil, solo coloca los argumentos después del comando python, editaré la respuesta para mostrarte un ejemplo. –

Cuestiones relacionadas