ничего не делать - PullRequest
       7

ничего не делать

0 голосов
/ 01 ноября 2018

У меня Raspberry Pi работает несколько скриптов Python / Flask. Есть 2 маршрута, которые делают следующее:

  1. Проверьте соединения Bluetooth в доме, чтобы увидеть, есть ли кто-нибудь дома, и запишите результат в таблицу MySQL.

  2. Проверяйте результат выше каждые 15 минут. Если дом пуст, отключите центральное отопление.

У меня есть 2 сценария оболочки, которые применяются к вышеуказанному:

размещение.ш

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

heatadjust.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 показывает хит.

Однако в сценарии ничего не происходит.

Если я запускаю сценарий оболочки из командной строки, снова ничего не происходит и никаких ошибок, которые я могу найти.

НО ... Если я вставлю адрес в браузер, он будет отлично работать.

Кто-нибудь знает, где я могу посмотреть дальше?

1 Ответ

0 голосов
/ 02 ноября 2018

Хорошо, я решил это. Проблема не в wget напрямую, а в том, что мой скрипт на Python полагается на чтение переменной сеанса, которую я установил с помощью токена аутентификации для Hive API. На данный момент мне нужно было добавить аутентификацию в начале моего скрипта, чтобы он получал новый токен от Hive при каждом запуске.

Я уверен, что есть более элегантный способ обойти это, но многое из того, что я уже написал, основано на той же функции проверки подлинности, поэтому мне нужно будет придумать другой способ сделать это.

...