我的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时出现错误。但该脚本在手动执行时有效。
答案 0 :(得分:1)
cron-job不是交互式shell。因此.bashrc
不会获得来源。您必须在脚本或crontab本身中手动执行此操作。
这样的事情应该这样做:
*/2 * * * * source /home/ubuntu/.bashrc ; /home/ubuntu/test.sh
答案 1 :(得分:0)
找到了答案: Cron not running django command
我在cron脚本中手动定义了这些值。