【问题标题】:Is there any way to run a python script on remote machine without sending it?有没有办法在远程机器上运行 python 脚本而不发送它?
【发布时间】:2012-10-01 11:10:07
【问题描述】:

我可以使用 ssh 在远程机器上运行 shell 脚本。例如:

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

现在我想在不发送 .py 文件的情况下运行 python 脚本。有什么办法吗?

【问题讨论】:

  • 您显然是在发送要运行的脚本。您的意思是“不将文件复制到远程机器”吗?
  • 是的,我的意思是不复制文件。

标签: python ssh


【解决方案1】:

这会将您计算机上的 my_script.py 的内容放入一个 echo 命令中,该命令在远程计算机上执行并传递给 python。

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"

确保命令行参数位于要发送到远程主机的命令的双引号内。

【讨论】:

  • 这在删除 cat 命令的双引号后起作用。所以正确的答案是:ssh -l foo 192.168.0.1 "echo 'cat my_script.py' | python"
  • 我还有一点!如何给这个 python 脚本提供命令行参数?
  • 这应该很简单,只要在python命令后面加上args,我会编辑答案给你看一个例子。
  • 我无法让带有 args 的示例正常工作。似乎您无法将参数传递给 python 交互式会话...
猜你喜欢
  • 1970-01-01
  • 2017-04-04
  • 1970-01-01
  • 2014-04-14
  • 1970-01-01
  • 2021-02-04
  • 1970-01-01
  • 1970-01-01
  • 2018-07-18
相关资源
最近更新 更多