谢谢你帮我设定了我的计划任务的工作,务确实是一个金矿我。

不幸的是,我有一个问题,并没有任何想法什么都没有什么可能是...基本上一份工作没有开始,而邻国的工作做。我会解释


这是我的crontabs的工作清单:

*/10 * * * * 蟒蛇/webapps/foo/manage.py fetch_articles

*/10 * * * * 蟒蛇/webapps/bar/manage.py fetch_books

我写了他们,因为他们是在一个文件,并将它们存储使用务/path/to/文件。

核务-l的工作。


奇怪的是,1这些执行每10分钟通常...但是其他一个没有。我试图输入命令手动,它工作正常,没有一个问题。


任何人都不会有什么建议?

帮助,将不胜感激,谢谢你们.


更新:

我一直在系统日志中的文件和我发现了这个:

Mar5 02:50:01localhost CRON[21652中]:(root)CMD(python/webapps/foo/manage.py fetch_books)

这是不是意味着务是调工作,好吗?


谢谢你答复的家伙!


固定它!非常感谢大家!

问题是,脚本默默地失败了,我相信这是由于PYTHON_PATH变化,由于那里的剧本是从...我完全确定。

有帮助吗?

解决方案

Cron总是运行一个环境不同的是什么,你认为:-)

我总是有我的cronjobs设立的,如:

*/10 * * * * ( date ; python /webapps/foo/manage.py fetch_articles ) >>/tmp/fetch.out 2>&1

为确保有记录的东西,我可以看看。

这将缩小你的问题向下:

  • cron,如果该临时文件不会出现;或
  • 你的脚本,如果它不会出现。

而且,在后一种情况下,我们希望将有一些输出可以调试。如果不是,把出在那里。

要做到这一点的一种方法是把:

set -x

在顶的剧本,这将导致所有行输出之前执行。所有的我的脚本倾向于启动:

#!/bin/bash
#set -x

所以我可以取消,第二行,同时调试。

其他提示

从crontab的手册页:

  

BUGS          虽然的 cron的要求,在以一个crontab端中的每个条目   换行符下,          无论是crontab命令,也不是cron守护程序会检测到这种   错误。代替,          在crontab看似正常加载。但是,命令   永远不会运行。          最好的选择是,以确保您的crontab中有一个空白行中   的端部。

(我的强调)。

我觉得〜unutbu的答案可能是正确的,如果它不运行的第二份工作。

然而另一个要检查是/webapps/bar/manage.py是否需要独占访问任何资源,例如网络套接字/临时文件等。由于你在同一时刻开始处理2,则可能会触发一个争用条件。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top