Crontab作业未启动。。。思想?

2024-10-01 09:26:15 发布

您现在位置:Python中文网/ 问答频道 /正文

谢谢你帮我安排我的cron工作,crontab对我来说真的是一座金矿。在

不幸的是,我有一个问题,不知道会是什么。。。基本上,一个工作不会像邻居的工作那样开始。我会解释的


这是我的crontab作业列表:

*/10 * * * * python /webapps/foo/manage.py fetch_articles

*/10 * * * * python /webapps/bar/manage.py fetch_books

我将它们写在一个文件中,并使用crontab/path/to/file存储它们。在

用crontab-l检查过,作业就在那里了。在


奇怪的是,正常情况下每10分钟执行一次。。。但另一个没有。我试着手动输入命令,它运行得很好,没有问题。在


有人有什么建议吗?在

谢谢大家的帮助。在


更新:

我在这个系统里找到了我:

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

这是否意味着crontab认为这项工作很好?在


谢谢你们的回复!在


修好了!非常感谢大家!!

问题是脚本悄无声息地失败了,我相信这是由于PYTHON路径由于脚本从何处调用而改变的。。。我完全肯定。在


Tags: py脚本列表managefoo作业barfetch
3条回答

从crontab手册页:

BUGS Although cron requires that each entry in a crontab end in a newline character, neither the crontab command nor the cron daemon will detect this error. Instead, the crontab will appear to load normally. However, the command will never run. The best choice is to ensure that your crontab has a blank line at the end.

(我的重点)。在

我认为~unutbu的答案可能是正确的,如果它是第二个没有运行的工作。

然而,另一个需要检查的事情是/webapps/bar/manage.py是否需要对任何资源的独占访问,例如网络套接字/临时文件等。由于您同时启动两个进程,您可能触发了竞争条件。在

Cron总是在与您所想的不同的环境中运行:-)

我总是把我的亲信安排成:

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

以确保我可以查看记录的内容。在

这将把你的问题缩小到:

  • cron,如果临时文件没有出现;或
  • 你的剧本,如果真的出现的话。在

在后一种情况下,希望有一些输出可以调试。如果没有,把输出放在那里。在

一种方法是:

^{pr2}$

在脚本的顶部,这将导致在执行之前输出所有行。我所有的脚本都倾向于开始:

#!/bin/bash
#set -x

所以我可以在调试时取消对第二行的注释。在

相关问题 更多 >