首页 > 解决方案 > wget什么都不做

问题描述

我有一个运行一些 Python/Flask 脚本的树莓派。有 2 条路线可以执行以下操作:

  1. 检查家中的蓝牙连接,看看是否有人在家,并将结果写入 MySQL 表。

  2. 每 15 分钟检查一次上述结果。如果房子是空的,请关闭中央供暖。

我有 2 个适用于上述情况的 shell 脚本:

占用.sh

wget -O - http://mydomain.co.uk/occupancy  > /dev/null 2>&1

热调整.sh

wget -O - http://mydomain.co.uk/heatingadjust  > /dev/null 2>&1

两个文件的权限和所有权相同。

它们都从 crontab 运行 - 它们都显示在 syslog 中,但 crontab 看起来像这样:

*/5 * * * * /var/www/html/dashboard/dashboard/occupancy.sh
*/5 * * * * /var/www/html/dashboard/dashboard/heatadjust.sh

选项 1 刚刚好。做它应该做的。

选项 2 不起作用。如果我从命令行运行 wget 而不将其发送到 /dev/null 它会以 200 状态响应并且没有错误。错误日志中没有任何内容。Apache 访问显示成功。

脚本中实际上没有发生任何事情。

如果我再次从命令行运行 shell 脚本,则什么也没有发生,也没有我能找到的错误。

但是...如果我将地址粘贴到浏览器中,它可以完美运行。

有没有人知道我接下来可以看哪里?

标签: shellwget

解决方案


好的,我解决了。问题不直接出在 wget 上,而是我的 Python 脚本依赖于读取我使用 Hive API 的身份验证令牌设置的会话变量。目前我必须做的是在我的脚本开始时添加身份验证,以便每次运行时从 Hive 获取一个新令牌。

我确信有一种更优雅的方式来解决这个问题,但是我已经写的很多东西都依赖于相同的身份验证检查功能,所以我需要考虑一种不同的方式来做这件事。


推荐阅读