У меня есть задание cron, написанное для root (я пишу в журнал в /var/log, поэтому вам нужно разрешение root). Проблема заключается в том, что иногда это работает, а иногда и нет.
Задача cron - просто вызвать скрипт python в моем домашнем каталоге, тогда все будет тяжело работать.
Я поставил задачу уйти посреди ночи, чтобы она не мешала тому, что я делаю, и чтобы API, с которым он взаимодействует, с меньшей вероятностью изменился (API обновляется в течение дня).
Но каждое утро я проверяю журналы и получаю следующую ошибку:
python3: can't open file '/home/myUser/path/to/the/main.py':
[Errno 2] No such file or directory
Мой ответ на это заключается в том, чтобы изменить время на кронтабе на несколько минут после времени I я проверяю журналы, жму несколько минут, и файл начинает работать. Единственное, что я меняю, это время, и внезапно оно работает.
Так что я точно знаю, что файл существует.
Я пробовал вариант раз ночью (30 23 * * *, 01 01 * * *, 10 02 * * *) никто не сработал, но всякий раз, когда я устанавливаю его в течение 2 минут после того, как я проверю утром, все в порядке.
Вот crontab, как он сейчас стоит:
[ f2]Также стоит упомянуть, что после этой работы есть дополнительная новая строка (я слышал, что это необходимо).
Кто-нибудь видел это раньше? Есть ли что-нибудь, что я могу попытаться найти в этом файле без необходимости вручную изменять сценарий каждый раз?
EDIT: вот мой env вывод для cron:
LANGUAGE=en_GB:en
HOME=/root
LOGNAME=root
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
LANG=en_GB.UTF-8
SHELL=/bin/sh
PWD=/root
Также подумал, что я бы упомянул, что я попытался использовать следующую команду (после выбора времени) безрезультатно (такая же ошибка, но только с main.py вместо полного пути):
cd /home/myUser/path/to/the; python3 main.py