Existem algumas maneiras de resolver isso:
Primeiro, não funciona porque /bin/sh
é o cron do shell usado para executar comandos, mas /bin/sh
não suporta source
. Portanto, a solução rápida é definir SHELL=/bin/bash
no crontab.
Ou ...
Em segundo lugar, não é necessário source virtualenv/bin/activate
de qualquer maneira. Você pode apenas chamar o virtualenv python diretamente.
* * * * * cd /home/www/production/mydjangoproject; /home/virtualenvs/mydjangoproject-venv/bin/python manage.py mydjangocommand
Estas foram tiradas de esta questão sobre SO , cujas respostas podem conter outras ideias para pessoas de semelhante, mas não exatamente as mesmas circunstâncias.