【问题标题】:Hello world Cron job not working你好世界 Cron 工作不工作
【发布时间】:2012-12-27 18:25:50
【问题描述】:

我只需要一个小时就可以了解cron 工作的工作原理,这就是我迄今为止所做的。我正在使用crontab -e 添加我的 cron 命令,即:

0/1 * * * * /usr/bin/python /home/my_username/hello.py > /home/my_username/log.txt

crontab -l 确认我的命令在那里。

你好.py:

#!/usr/bin/python
# Hello world python program
print "Hello World!"

但我在日志文件中看不到任何内容。有人可以解释一下我做错了什么吗?

【问题讨论】:

  • 该条目真的有两行,第一行以>结尾吗?
  • 看起来不像,如果你编辑问题,你可以看到它不是。
  • 这在我的 OS X 系统上运行良好。您使用的是什么操作系统?
  • 人们投票反对并投票结束:在我看来,这里确实存在问题。看我的回答。
  • @KeithThompson 您的回答证实这是关于 serverfault 的问题

标签: python unix cron crontab


【解决方案1】:

实验表明0/1 似乎是问题所在。

0/1 应该等同于*。如果将0/1 替换为*,它应该可以工作。

这是我的实验性 crontab:

0/1 * * * * echo 0/1  >> cron0.log
*   * * * * echo star >> cron1.log

这会创建cron1.log,但不会创建cron0.log

我将对此进行调查并尝试找出为什么 0/1 不起作用,但现在只需使用 * 就可以了。

更新:

foo/bar 语法特定于 Vixie cron 实现,大多数 Linux 系统和 MacOS X 都使用该语法,但并不通用。

每分钟运行一个命令的常用方法是在第一个字段中仅指定*。要每 5 分钟运行一次命令,如果您的 cron 支持它,请指定 */5

crontab(5) 手册页是这样写的:

步长值可以与范围结合使用。跟随一个范围 with /<number> 指定跳过数字的值 范围。例如,0-23/2 可以在小时字段中用于指定 每隔一小时执行一次命令(V7 标准中的替代方案 是0,2,4,6,8,10,12,14,16,18,20,22)。之后也允许步骤 一个星号,所以如果你想说“每两个小时”,只需使用*/2

我什至不确定0/1 是什么意思。

更新 2:

好的,这就是我找到的。

鉴于字段 2 到 5 都是 *,将第一个字段(指定分钟)设置为 * 会导致作业每分钟运行一次。 */2 每 2 分钟运行一次,*/3 每 3 分钟运行一次。这一切都符合预期。

将第一个字段设置为 0/10/20/3 中的任何一个会导致作业仅在整点运行,即,它仅相当于 0

这不是我从手册页中的描述所期望的。 Wikipedia quote 中的jgritty's answer

某些版本的 cron 可能不接受“/”前面的值,如果它是 不是范围,例如“0”。另一种方法是替换零 带星号。

似乎并不完全正确,至少对于我正在使用的 Vixie cron 版本而言; 0/1 毫无怨言地被接受,但这并不意味着我所期望的,它似乎也不是特别有用。

【讨论】:

  • 我相信 m/n 语法是 Vixie Cron 的扩展,即基本上仅限 Linux。
  • @tripleee:看起来像MacOS X uses Vixie Cron
  • 看来是这样。我想真正的问题是你在回答中提到的定义不明确的0/1
  • @tripleee:我在我的系统上看到了类似的症状(Linux Mint 14,Vixie cron)。
  • 获取信息,来自man cron [...]The cron utility then wakes up every minute, examining all stored crontabs, checking each command to see if it should be run in the current minute. 所以我想在 crontab 中每分钟运行一个命令是不可能的
【解决方案2】:

0/1 对于您的 cron 版本似乎格式错误。

我在wikipedia 上找到了这个:

某些版本的 cron 可能不接受“/”前面的值,如果它不是一个范围, 比如“0”。另一种方法是将零替换为星号。

所以 Keith Thompson 的回答应该有效,所以应该:

*/1 * * * *

【讨论】:

    猜你喜欢
    • 2011-09-24
    • 1970-01-01
    • 1970-01-01
    • 2021-05-10
    • 1970-01-01
    • 1970-01-01
    • 2014-06-14
    • 2011-02-09
    • 1970-01-01
    相关资源
    最近更新 更多