如果使用cron执行,则为SyntaxError,如果是手动,则为OK

时间:2014-07-04 10:03:44

标签: django cron kubuntu

我试图在kubuntu中使用cron安排脚本。如果我逐行手动执行脚本,它会很好,但是使用cron计划它会引发以下语法错误:

  File "/opt/django/myproject/myapp/cron/test.sh", line 4
    python manage.py mycustomcommand
                ^
SyntaxError: invalid syntax

脚本test.sh的内容如下:

#!/bin/bash
source /opt/virtualenvs/myvirtualenv/bin/activate
cd /opt/django/myproject
python manage.py mycustomcommand

基本上,脚本会激活安装了django的虚拟环境,然后访问我的项目路径,然后执行自定义的django命令。如上所述,如果我手动操作,这可以正常工作。

我尝试使用普通权限和root权限在cron中安排脚本(" crontab -e"和" sudo crontab -e")

有什么想法吗?谢谢!

1 个答案:

答案 0 :(得分:4)

该错误表明您从Python解释器中发出命令python manage.py mycustomcommand (而不是作为bash命令)。

你可能有像

这样的东西
1 * * * * python /path/to/myscript/test.sh
你的crontab条目中的

是一个错误,它应该是

1 * * * * /path/to/myscript/test.sh

代替。