在cron中使用参数运行脚本

我想运行.py脚本

python /home/project/manage.py slope_update 

如果我从shell运行它是可以的,但在cron中不起作用:

 */10 * * * * root python /home/project/manage.py slope_update 

什么错?

我从根编辑我的/ etc / crontab文件

 SHELL=/bin/sh PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin # mh dom mon dow user command 17 * * * * root cd / && run-parts --report /etc/cron.hourly 25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --repo$ 47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --repo$ 52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --repo$ # */10 * * * * root /usr/bin/python /home/project/manage.py slope_update 

用户量子帮助:

* / 10 * * * * root / usr / bin / python /home/project/manage.py slope_update >> /tmp/foo.log 2>&1

猫foo.log

未知的命令:'slope_update'input'manage.py help'的用法。

为什么slope_update尝试使用命令,但必须有参数如果这个“python /home/project/manage.py slope_update”在terminal运行它的工作。 为什么?

将错误redirect到文件将帮助您更轻松地进行debugging:

 */10 * * * * root python /home/project/manage.py slope_update >> /tmp/foo.log 2>&1 

尝试把你的crontab中的Python的完整path例如

 */10 * * * * root /usr/bin/python /home/project/manage.py slope_update 

编辑:

问题是,cron中的PATH不包括python安装目录(/ usr / bin),所以你需要提供python的完整path。

编辑编辑:

你正在从你的/ etc / crontab运行这个? 如果不是那么根参数不是必需的,可能会导致问题。

检查电子邮件从cron的邮件,因为它将作业的输出发送给你。

检查你的python生活在哪里,相应地调整crontab中的path。