安排需要root访问权限的Django命令的最佳方法

时间:2013-09-09 12:08:21

标签: django permissions cron raspberry-pi django-commands

我使用Raspberry Pi作为(非常简单的)家庭气象站。

我目前有一个小的python脚本,在运行时,需要读取温度并通过Google Docs API将结果作为新行发布到Google电子表格。这个python脚本需要以root身份运行,我目前通过安排这个脚本在超级用户的crontab中每小时运行来获得良好的结果。

我还得到了这个Pi运行Nginix和uWsgi来提供支持Django的网站,我想开始将温度记录到本地数据库以及Google电子表格。我想通过Django的ORM来做这件事,因为这是我最熟悉的。

我有两个具体目标:

  1. 设置一个定期计划的任务,将新获取的温度读数发布到本地数据库(使用Django ORM)以及Google电子表格。
  2. 提供一个网页(可能需要登录),允许远程用户“立即读取温度”,并将结果报告(通过网页)并将结果插入服务器端数据库。
  3. 我的问题是:最好的方法是什么,知道任何访问温度探测器的代码都必须以root身份运行?

    对于#1,我想这个问题归结为:加载一个“感觉像Django shell”的python环境的最佳方法是它可以很容易地完成所有相同的导入(特别是像ORM这样的东西) ?如果我能做到这一点,我可以编写一个新脚本来执行电子表格上传和数据库写入。我可以/我应该通过Django“命令”执行此操作,然后将其安排在超级用户的crontab中运行吗?或者我应该通过一个常规的旧python脚本来执行此操作,并加载正确的Django特定模块?

    对于#2,我一直在寻找有关如何处理温度传感器读数的“必须以root运行”问题的建议。我显然不希望以root身份运行整个Django进程。那么我最好的选择是什么?

    感谢。

1 个答案:

答案 0 :(得分:1)

django-celery绝对值得研究运行计划任务。