【发布时间】:2017-05-31 06:39:53
【问题描述】:
我创建了一个可执行脚本 .sh,其中包含运行 django managemenet 命令的代码。
cron.sh
#!/bin/sh
. /path/to/env/activate
cd /path/to/project
/path/to/env/bin/python manage.py some_command
我可以通过直接在终端上执行来确认这个脚本和 manage.py 命令正在运行
$ /path/to/cron.sh
当我通过 crontab 执行相同操作时,它无法按预期工作。
** 我做错了什么??我可以确认 crontab 没有问题,它执行 cron.sh 文件,但 path/to/env/bin/python manage.py some_command 没有按预期工作。
cron 日志也显示
CRON[14768]: (root) CMD /path/to/cron.sh > /dev/null 2>&1
我正在使用 bitnami django ami (ubuntu 14.04.5 LTS)
更新
删除 /dev/null 后,我现在收到此错误
"Cannot locate wrapped file"
【问题讨论】:
-
只是让您知道 - 您可以使用
/path/to/env/python在该虚拟环境中运行您的程序,而无需激活它。 -
是的,我也试过了
-
您可能需要在 cron 脚本中设置
DJANGO_SETTINGS_MODULE环境变量,或者通过--settings将设置传递给命令。 -
删除重定向到
/dev/null以查看manage.py命令输出的错误。 -
请注意,当我像 $ /path/to/cron.sh 这样直接从终端执行它时,它可以正常工作
标签: python django ubuntu bitnami