如何使用 ssh 作为后台任务在 Linux 上在 Windows 机器上运行 python 脚本?

如何使用 ssh 作为后台任务在 Linux 上在 Windows 机器上运行 python 脚本?

我必须在几台 Linux 机器和一台 Windows 机器之间协调一些脚本任务。ssh 对于如下所示的 Linux 机器运行良好:

ssh mysuser@targetLinuxmachine "python '/pathtomyscript/myscript.py' &"

但是当我将命令发送到 Windows 计算机时,相同的方法无法作为后台任务运行。在 Windows 计算机上,我运行了 ssh 服务器,并且 ssh 连接本身正在运行。RSA 公钥也已插入。实际上,以下命令运行:

ssh -n -f mysuer@targetwinmachine "python 'C:\Windowspath\myscript.py -someswitch parameter' &"

但是在 bash 中执行该命令会将我的终端带到 Windows 控制台,并且不允许我将其作为后台任务运行。我猜“&”在 Windows 上无法将该命令作为后台任务运行。

如何在 Windows 机器上将等效脚本作为后台任务运行?

答案1

是的,cygwin有一个非常好的适用于 Windows 的 ssh 服务器。首先,您应该下载并安装它。

在您可以使用命令行 ssh 登录到 Windows 机器后,您可以使用ssh-keygen它来实现无密码和自动化。

第三件事是在你的 Windows 机器上安装 Python,你可以从中获取http://www.python.org/getit/windows/

我不清楚这些步骤中哪一个不起作用,但你的主要问题可能是你的 windows 机器上安装的 ssh 服务器。你能从你的 unix/linux 机器使用命令行 ssh 登录到你的服务器吗?如果不能,请更新你的问题,我会更新我的答案。

答案2

您可以从命令行使用 Putty:

plink mysuser@targetLinuxmachine "python '/pathtomyscript/myscript.py' &"

SSH 密钥可以通过 PuttyAgent 进行管理。

答案3

通过 apache 服务器的 cgi 脚本是在另一台机器上执行代码的一种巧妙的方法。

答案4

所以你只是想在 Linux 上在后台运行该命令?我认为你只是把 & 放错了位置。将 & 放在“”外面:

ssh -n -f mysuer@targetwinmachine "python 'C:\Windowspath\myscript.py -someswitch parameter' " &

相关内容