仅在特定时间每分钟运行一次cron作业?

时间:2012-08-11 11:49:19

标签: php cron centos

如何在特定时间每分钟运行一次cron作业?像这样:

  

仅在上午11点至中午12点,下午4点至下午5点以及晚上9点至晚上10点检查每分钟

对我来说似乎很复杂,我不知道从哪里开始。

2 个答案:

答案 0 :(得分:42)

正确的解决方案:

* 11,16,21 * * *

因为如果您使用以前的解决方案:

0-59 11-12,16-17,21-22 * * * *

工作将于12:40或17:59开始。不在上午11点至中午12点,下午4点至下午5点以及晚上9点至晚上10点。

<强>更新

繁体(继承自Unix)cron格式由五个以白色空格分隔的字段组成:

*    *    *    *    *  command to be executed
┬    ┬    ┬    ┬    ┬
│    │    │    │    │
│    │    │    │    │
│    │    │    │    └───── day of week (0 - 6) (0 is Sunday, or use names)
│    │    │    └────────── month (1 - 12)
│    │    └─────────────── day of month (1 - 31)
│    └──────────────────── hour (0 - 23)
└───────────────────────── min (0 - 59)

nnCron可以使用cron格式的传统和“增强”版本,后者还有一个额外的(第6个)字段:年份。

答案 1 :(得分:6)

根据cron format

<Minute> <Hour> <Day_of_the_Month> <Month_of_the_Year> <Day_of_the_Week> <Year>

* * * * * *
| | | | | | 
| | | | | +-- Year              (range: 1900-3000)
| | | | +---- Day of the Week   (range: 1-7, 1 standing for Monday)
| | | +------ Month of the Year (range: 1-12)
| | +-------- Day of the Month  (range: 1-31)
| +---------- Hour              (range: 0-23)
+------------ Minute            (range: 0-59)

解决方案应该是

* 11,16,21 * * * *