PHP 定时任务|Cron

一. Crontab 介绍

crontab命令的功能是在一定的时间间隔调度一些命令的执行。在/etc目录下有一个crontab文件,这里存放有系统运行的一些调度程序。每个用户可以建立自己的调度crontab。

二. Crontab使用说明

1.crontab命令语法

usage: crontab [-u user] [ -e | -l | -r ]

-u 设定某个用户的cron服务,一般root用户在执行这个命令的时候需要此参数

-e 编辑某个用户的cron服务

-l 列出某个用户cron服务的详细内容

  -r 删除某个用户的cron服务

例如:root查看自己的cron设置,命令为crontab -u root –l

在我们的项目中常用的命令:

a、crontab /etc/crontab

b、crontab -l

c、/etc/init.d/cron stop

d、/etc/init.d/cron start

我们可以用crontab -e 添加要执行的命令。添加的命令必须以如下格式:

* * * * * /command path

PS前五个字段可以取整数值,指定何时开始工作,第六个域是字符串,即命令字段,其中包括了crontab调度执行的命令。 各个字段之间用spaces和tabs分割。

前5个字段分别表示:

分钟:0-59

小时:0-23

日期:1-31

月份:1-12

星期:0-6(0表示周日)

还可以用一些特殊符号:

* : 表示任何时刻

, : 表示分割

   - :表示一个段,如第二端里: 1-5,就表示1到5点

/n : 表示每个n的单位执行一次,如第二段里,*/1, 就表示每隔1个小时执行一次命令。也可以写成1-23/1.

实例:

43 21 * * * 21:43 执行

15 05 * * *    05:15 执行

0 17 * * * 17:00 执行

0 17 * * 1 每周一的 17:00 执行

0,10 17 * * 0,2,3 每周日,周二,周三的 17:00和 17:10 执行

0-10 17 1 * * 毎月1日从 17:00到7:10 毎隔1分钟 执行

0 0 1,15 * 1 毎月1日和 15日和 一日的 0:00 执行

42 4 1 * *     毎月1日的 4:42分 执行

0 21 * * 1-6   周一到周六 21:00 执行

0,10,20,30,40,50 * * * * 每隔10分 执行

*/10 * * * *        每隔10分 执行

* 1 * * *         从1:0到1:59 每隔1分钟 执行

0 1 * * *         1:00 执行

0 */1 * * *        毎时0分 每隔1小时 执行

0 * * * *         毎时0分 每隔1小时 执行

2 8-20/3 * * *       8:02,11:02,14:02,17:02,20:02 执行

30 5 1,15 * *       1日 和 15日的 5:30 执行