Если одно задание Cron терпит неудачу, переходите к следующему заданию - PullRequest
0 голосов
/ 24 февраля 2019

Я настроил свой Crontab для выполнения набора сценариев Python для опроса солнечного инвертора и загрузки результатов в PVOutput:

*/5 * * * * cd /home/Pi/; python pvout_upload.py;
*/5 * * * * cd /home/Pi/; python weather.py;

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

Есть ли способ заставить Cron-задачу перейти на следующую строку, если она потерпит неудачу?

1 Ответ

0 голосов
/ 25 февраля 2019

Для этого вы можете использовать классические ресурсы оболочки.Если вы поставите

command1 || command2 

в строке crontab.Затем:

команда2 будет выполнена, если команда 1 не выполнена (возвращает ошибку). Это может быть что-то вроде:

*/5 * * * * cd /home/Pi/; python pvout_upload.py || python errorManagement.py

Конечно, вы также можете встроить эту логику в скрипт Python.

...