我正在尝试从cron运行Django管理命令。我正在使用virtualenv使我的项目保持沙盒状态
我在这里和其他地方看到过一些示例,它们显示了从virtualenv内部运行管理命令,如:
03***源/主/用户/项目/环境/垃圾箱/激活&&/home/user/project/manage.py命令arg
但是,即使syslog在任务应该启动时显示一个条目,该任务也不会实际运行(脚本的日志文件为空)。如果我从shell手动运行该行,它将按预期工作
当前,我可以通过cron运行命令的唯一方法是将命令分解并将其放入哑bash包装器脚本中:
#/垃圾箱/垃圾箱
source/home/user/project/env/bin/activate
cd/主页/用户/项目/
./manage.py命令参数
编辑:
ars提出了一个有效的命令组合:
03***cd/home/user/project&&/home/user/project/env/bin/python/home/user/project/manage.py命令arg
至少在我的例子中,调用virtualenv的activate脚本什么也没做。这很管用,节目也是如此
您应该能够通过在虚拟环境中使用python来做到这一点:
/home/my/virtual/bin/python/home/my/project/manage.py命令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