Крон и virtualenv

Я пытаюсь выполнить команду управления Django от крона. Я использую virtualenv для хранения моего проекта поигравшим в песочнице.

Я видел примеры здесь и в другом месте что шоу рабочее управление управляет из virtualenv's как:

0 3 * * * source /home/user/project/env/bin/activate && /home/user/project/manage.py command arg

Однако даже при том, что системный журнал показывает запись, когда задача должна была запуститься, эта задача никогда на самом деле работает (файл журнала для сценария пуст). Если я выполняю строку вручную от оболочки, она работает как ожидалось.

Единственным путем я могу в настоящее время заставлять команду работать через крон, должен разбить команды и поместить их в немой сценарий обертки удара:

#!/bin/sh
source /home/user/project/env/bin/activate
cd /home/user/project/
./manage.py command arg

Править:

ars придумал рабочую комбинацию команд:

0 3 * * * cd /home/user/project && /home/user/project/env/bin/python /home/user/project/manage.py command arg

По крайней мере, в моем случае, вызывая активировать сценарий для virtualenv ничего не сделал. Это работает, таким образом, на с шоу.

210
задан Francisco Couzo 28 January 2018 в 14:40
поделиться

1 ответ

Вы можете сделать это, используя python в своей виртуальной среде:

/home/my/virtual/bin/python /home/my/project/manage.py command arg

РЕДАКТИРОВАТЬ: Если ваш django проекта нет в PYTHONPATH, тогда вам нужно будет переключиться в правильный каталог:

cd /home/my/project && /home/my/virtual/bin/python ...

Вы также можете попытаться зарегистрировать сбой из cron:

cd /home/my/project && /home/my/virtual/bin/python /home/my/project/manage.py > /tmp/cronlog.txt 2>&1

Еще одна вещь, которую нужно попробовать, - это сделать такое же изменение в вашем manage.py сценарий на самом верху:

#!/home/my/virtual/bin/python
231
ответ дан 23 November 2019 в 04:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: