从Django Webserver在远程服务器上运行脚本

时间:2014-11-18 23:11:10

标签: python django

我有一个基本的(server1)Django开发Web服务器和另一个服务器(server2),它有一个python脚本,可以进行一些科学计算。假设server1具有必要的身份验证,以便在server2上运行脚本。我想要做的就是,点击django网站上的一个按钮,该按钮将运行位于server2上的python脚本。

到目前为止我的想法是,

  • 使用某种SSH库来运行脚本并获得响应
  • 在server2上设置REST API以运行脚本

不确定上述想法是否有效,请建议您对此进行深入了解,如果可能,请提供一个简单的示例。

更多信息:Server1和Server2必须是2个独立的服务器,server1是Web服务器,而server2可以是任何Linux虚拟机。此外,必须将server2的响应发送回server1。

2 个答案:

答案 0 :(得分:1)

在阅读并尝试各种论坛建议并在Google上花费时间之后,我已经与paramiko安定下来了。它完全符合我的要求,现在就像魅力一样。

点击我的网站上的一个按钮,在server1上运行,我发出了运行python脚本的请求。 python脚本使用paramiko与server2建立SSH连接,运行必要的命令并将响应写入普通/文本文件。此普通/文本文件通过django表单作为响应呈现回请求。

现在看起来有点脏,还有更多的事情需要考虑,如果命令执行时间很长或者由于某种原因导致错误,会发生什么。我没有花时间找出所有这些问题的答案,但最终还是会。

答案 1 :(得分:0)

没有理由为什么服务器本身无法执行像selenium或phantomjs这样的东西导航到server2上的网站并单击服务器2上的按钮,然后使用类似python的子进程模块执行程序服务器2.