2012-03-23 161 views
2

我遇到以下问题:我必须从Web应用程序(播放)中运行远程服务器上的命令,但是从Web服务器上,我没有ssh访问远程服务器的权限。我唯一拥有的就是远程服务器可以通过http(s)访问Web服务器。从Web应用运行远程服务器上的命令

我的想法是创建一个python守护进程,该守护进程轮询通过JSON返回请求命令的URL。

这是个好主意吗?有没有可以帮助客户的框架?

BR刘若英

+0

你需要在远程服务器上做什么?执行任意的shell命令?执行一个特定的shell命令? – 2012-03-23 13:35:13

+0

执行任意shell命令。 – reen 2012-03-23 13:46:35

+0

看起来像一个坏主意。如果你必须这样做,至少只允许一组受限制的命令(在chroot监狱里面会很好)。 – 2012-03-23 13:56:00

回答

3

我的想法是创建一个蟒蛇守护,这其中投票通过JSON返回 请求命令的URL。

这实质上是一个消息代理。因此,不要自己写一个,而要使用任何可用的消息代理,如rabbitmq,这些消息代理都具有与Java绑定的功能,以及要在目标服务器上运行的任何语言。

从您的Web服务器向代理发送消息。这会触发目标服务器上的工作人员“醒来”并执行一些任务。然后,您可以选择在整个消息代理中获取结果,或者将其写入某个公共存储区(例如更新某个k/v存储区或写入公共数据库)。

+0

这也是我的想法,但我无法安装新的消息代理服务器。我认为我唯一的解决方案就是我提到的那个。 – reen 2012-03-26 21:05:14

+1

它不需要在专用机器上。 – 2012-03-27 04:05:22

0

看来你可以做远程调用与,你可以调用远程对象的蟒蛇。 Python Remote Objects是一个完全用Python编写的分布式对象系统,仅用于Python。它很小,简单而且免费。点击此处查看:pyro

+0

不幸的是没有端口对远程服务器开放。我只是从远程服务器向Web服务器发送http(s)连接。 – reen 2012-03-23 14:55:06

相关问题