Как мне заставить crontab правильно работать в Raspbian? - PullRequest
0 голосов
/ 16 июня 2020

Я новичок в crontab и борюсь с основами. У меня много разных вопросов. Все это делается на моем Raspberry Pi. Я пытаюсь запланировать запуск сценария python каждые 10 минут в будние дни. Сложнее то, что мой сценарий python должен использовать виртуальную среду.

Проведя небольшое исследование, я увидел, что могу просто активировать виртуальную среду с помощью сценария bash, а затем запустить сценарий python через него. Это сценарий bash:

#!/bin/bash

cd /home/pi/Desktop/projects/my_project

source env/bin/activate

python my_script.py

Я понятия не имею, лучший ли это способ запустить python в виртуальной среде через crontab, но это все, что я смог найти в Интернете. Это код самого crontab:

SHELL=/bin/bash

0-59/10 * * * 1-5  /home/pi/Desktop/projects/my_project/cron_script.sh

Я протестировал код crontab, запустив его в командной строке: sudo crontab -l | grep -v '^#' | cut -f 6- -d ' ' | while read CMD; do eval $CMD; done. Опять же, я понятия не имею, лучший ли это способ немедленно проверить это. Это вызывает сообщение об ошибке:

bash: /home/pi/Desktop/projects/my_project/cron_script.sh: Permission denied

Я действительно просто запутался в большом количестве различных шагов здесь. Резюме:

  1. Я не знаю, правильно ли я использую виртуальную среду python в crontab или есть более чистый способ сделать это.
  2. Я не узнайте, есть ли лучший способ немедленно протестировать crontab. Также было бы неплохо записать операторы печати из моего python скрипта в текстовый файл.
  3. Я получаю сообщение об ошибке отказано в разрешении.

1 Ответ

1 голос
/ 16 июня 2020

Ошибка, вероятно, связана с тем, что ваш bash скрипт не помечен как исполняемый. Вы можете использовать chmod, чтобы изменить права доступа.

Попробуйте следующее:

chmod +x /home/pi/Desktop/projects/my_project/cron_script.sh
...