这个cronjob线是什么意思

时间:2012-10-11 15:45:32

标签: linux shell cron crontab cronexpression

我有一个cron表达式,它与我之前使用过的表达式略有不同,特别是因为?运算符(我不知道它为什么被使用)

以下是我作为标准格式引用的格式。但是我在这种标准格式之后给出的表达式并没有遵循这种结构。 任何人都可以帮我理解这种新格式。提前感谢您的帮助。

* * * * * command to be executed
- - - - -
| | | | |
| | | | ----- Day of week (0 - 7) (Sunday=0 or 7)
| | | ------- Month (1 - 12)
| | --------- Day of month (1 - 31)
| ----------- Hour (0 - 23)
------------- Minute (0 - 59)

表达:

0  15 15 ? * 1-7

3 个答案:

答案 0 :(得分:3)

这是一个错误。

cron中的时间格式为5列。你有6个。

如果我测试你的cronexpression

0  15 15 ? * 1-7 ls

crontab显示:

crontab: installing new crontab
"/tmp/crontab.AzvS1Q":148: bad month
errors in crontab file, can't install.
Do you want to retry the same edit? 

此外,如果我在内部使用?的5列进行测试,我仍然会收到错误。

我的cron实施cronie 1.4.8-3 archlinux。在这种情况下,我从未在旧生活中见过?

答案 1 :(得分:1)

除了它似乎有太多字符之外,可以使用问号来代替通配符情况的*字符,以便将日期留空或者星期几空白。

答案 2 :(得分:1)

好的,我找到了解决方案,实际上是使用java quartz scheduler进行调度。

这是如何在表达式中获得6个参数

我的表达:0 15 15 ? * 1-7

Seconds
Minutes
Hours
Day-of-Month
Month
Day-of-Week
Year (optional field)

日期和星期几字段允许使用'?'字符。它用于指定“无特定值”。当您需要在两个字段之一中指定某些内容而不是另一个字段时,这非常有用。请参阅下面的示例(和CronTrigger JavaDoc)以获得说明。

您可以使用它来验证您的cron表达式http://www.cronmaker.com/