4 ответа

Иван Абрамов
08.08.2016 11:37

Что по данной проблеме говорят в поддержке?

Цитирую ответ техпеддержки:

Со стороны службы поддержки не производится анализ пользовательских скриптов. Cпособ решения обозначенной проблемы необходимо будет найти самостоятельно либо привлечь стороннего специалиста.

Мы рекомендуем еще раз внимательно проверить размещенные директивы.

Нашел решение, спасибо техподдержке за пинок и опыт. Нет, ну правда)

Ну во 1-х: Выяснилось, что cron вызывается исключительно через #!/bin/sh. Никаких #!/bin/bash и файлов с расширение *.bash он не видит и не понимает.. Покрайней мере в crontab можно выбирать только sh сценарий.

Во 2-х: Оказалось что в sh не работает стандартная утилита source ! Возможно у администратора с правами она и работает, но у нас, у смертных - Permission denied. Причем если запуститься из под bash, а по умолчанию он и стоит) Все работает! Это и обьясняет то, что скрипты прекрасно отрабатываются в консоле, но вываливаются через cron.

В итог:. Я решил вовсе отказаться от обращения к virtualenv через source / activate. А запускать скрипт напрямую, указав полный путь до python, и скрипта (а у нас в django это manage.py) и дальше все команды стандартно...

В итоге мой cron.sh теперь выглядит так:

#!/bin/sh
/home/c/xxxxxx/env/bin/python /home/c/xxxxxxx/gorod/public_html/site/manage.py todo

Все отлично отрабатывает. Вообще крон классная штука. Уж очень не хотелось курить маны и ставить Celery. Надеюсь мой опыт кому нибудь сократит время.

Лавр Иванов
09.08.2016 06:36

Это здорово что удалось разобраться, спасибо что поделились решением!

Лично я Django в своих проектах не использую, ограничиваясь привычными всем CMS, но тешу себя надеждами что когда-то буду освою и направление работы с фреймворками вроде Django.

Вообще было бы здорово, если бы техническая поддержка влет могла указать на выявленный вами факт, но если готовым решением они не обладали, им бы наверняка потребовалось провести анализ вроде вашего, а думаю что это заняло бы не 5 и не 15 минут. Поэтому предложенный вариант по самостоятельному анализу понятен и здорово что удалось разобраться с проблемой. Так держать!