Crontab不使用.bashrc中定义的django env变量

时间:2016-12-21 12:35:45

标签: bash ubuntu cron

我的django应用程序使用 .bashrc 文件中定义的env变量。 django app正在获取.bashrc文件中定义的值。

我需要在crontab中运行python管理命令。通常这很容易定义。您可以在脚本中定义管理命令并将其添加到cron中或直接在cron中使用命令。

但是在这种情况下,cron无法获得.bashrc文件中定义的env变量的值。我几乎尝试过我发现的每一份文件,但仍然没有考虑过。

这是我使用的脚本:

WORKON_HOME=/home/ubuntu

PROJECT_ROOT=/home/ubuntu/projects/

. $WORKON_HOME/virtuals/bin/activate

cd $PROJECT_ROOT

python manage.py COMMAND

在我使用的cron标签中:

*/2 * * * * /home/ubuntu/test.sh

此设置适用于所有其他情况。现在执行cron时出现错误。但该脚本在手动执行时有效。

2 个答案:

答案 0 :(得分:1)

cron-job不是交互式shell。因此.bashrc不会获得来源。您必须在脚本或crontab本身中手动执行此操作。

这样的事情应该这样做:

*/2 * * * * source /home/ubuntu/.bashrc ; /home/ubuntu/test.sh

答案 1 :(得分:0)

找到了答案: Cron not running django command

我在cron脚本中手动定义了这些值。