У меня проблемы с запуском скрипта Python через cronjob.
Я могу запустить скрипт python (он должен соединиться с базой данных, вытащить несколько записей, сохранить это в CSV, а затем отправить его по электронной почте) вручную просто отлично. Тем не менее, я не могу заставить его работать. Он должен запускаться каждую минуту для тестирования.
Вот строка в crontab -e:
* * * * * /usr/bin/python /appl/belo_monthly/belo_monthly.py > /appl/belo_monthly/results.log
Я использовал chmod -x
для файла. Я также попытался записать строки print
файла в журнал. Никто не работает - даже не создаст файл .log.
Файл Python имеет #!/usr/bin/python
в самом верху.
Что я пробовал:
Я посмотрел это здесь и обнаружил следующее: скрипт Python не работает как cronjob
Используя это как ссылку:
- Да, cron демон работает.
pidof cron
возвращает значение. - От этого зависит множество других сервисов, поэтому я не могу перезапустить его.
sudo tail -f /var/log/syslog
дает мне следующее:
31 марта 10:21:01 ip-XX-XXX-XXX-XX CRON [30223]: (ubuntu) CMD (/usr/bin/python /appl/belo_monthly/belo_monthly.py> /appl/belo_monthly/results.log)
И это добавляет еще одну строку, как это минуту спустя.
- Наконец, я попробовал это:
sudo strace -f -p pidof cron
. Который вернул это:
execve("/bin/sh", ["/bin/sh", "-c", "/usr/bin/python /appl /belo_month" ...], [/* 6 vars * /]) = 0
А потом какой-то искаженный текстовый беспорядок, такой:
open("/appl/belo_monthly/results.log", O_WRONLY|O_CREAT|O_TRUNC, 0666) = -1 EACCES (Permission denied)
write(2, "/bin/sh: 1: ", 12) = 12
write(2, "cannot create /appl/belo_monthly"..., 63) = 63
write(2, "\n", 1) = 1
exit_group(2)
Так что я думаю, это не может создать журнал. Но как насчет скрипта Python? Что случилось?