我正在使用 Raspberry Pi 作为(非常简单的)家庭气象站。
我目前有一个小的 Python 脚本,它在运行时读取温度并通过 Google Docs API 将结果作为新行发布到 Google 电子表格。这个python脚本需要以root身份运行,我目前通过安排这个脚本在超级用户的crontab中每小时运行一次,得到了很好的结果。
我还刚刚让这个 Pi 运行 Nginix 和 uWsgi 来为 Django 驱动的网站提供服务,除了 Google 电子表格之外,我还想开始将温度记录到本地数据库中。我想通过 Django 的 ORM 来做到这一点,因为这是我最熟悉的。
我有两个具体目标:
- 设置一个定期安排的任务,将新获取的温度读数发布到本地数据库(使用 Django ORM)以及 Google 电子表格。
- 提供一个网页(可能需要登录),该网页将允许远程用户“立即读取温度”并报告结果(通过网页)并将结果插入服务器端数据库。
我的问题是:知道要访问温度探测器的任何代码都必须以 root 身份运行,因此最好的方法是什么?
对于#1,我想问题归结为:加载“感觉像 Django shell”的 python 环境的最佳方法是什么,因为它可以轻松地执行所有相同的导入(特别是像 ORM 这样的东西)?如果我能做到这一点,我可以编写一个新的脚本来完成电子表格上传和数据库写入。我可以/应该通过 Django“命令”执行此操作,然后将其安排在超级用户的 crontab 中运行吗?或者我应该通过一个常规的旧 python 脚本来执行此操作并加载正确的 Django 特定模块?
对于#2,我正在寻找有关如何处理温度传感器读数的“必须以 root 身份运行”问题的建议。我显然不想以 root 身份运行整个 Django 进程。那么我在这里最好的选择是什么?
谢谢。