之前有个定时任务, 需要每天的9点和21点定时跑. 当时我是这么写的:
0 9 * * * XXX
0 21 * * * XXX
当时经过高人指点, 发现这两条命令可以写成一条:
0 9,21 * * * XXX
好羞耻... 于是, 我决定整理一篇crontab
的语法. 防止下次再出现这尴尬的场景..
命令行
基本有这俩就够用了. 主要是整理一下定时任务的命令格式
定时任务
命令格式如下:
min h d m w XXX
命令的含义是: 在指定的时间执行指定命令.
其中针对时间设置有以下几个分割方式:
*
: 通配符. 表示每一个时刻/
: 整除标志. eg: */5
当时间点能被5整除时.,
: eg: 1, 2
1点和2点-
: eg: 5-10
5点到10点L
: 最后一个(仅星期有效). eg: 5L
. 最后一个星期五W
:最接近的工作日(仅月有效). eg: 15W
. 最接近15号的工作日.#
: 第几个(仅星期有效). eg: 5#3
. 第3个星期五.举例
0 */3 * * * XXX
0 17 * * 1-5 XXX
0 2,3,4 * * * XXX
0 0-12/2 * * * XXX
0 12 * * 5#3 XXX
0 12 * * 5L XXX
最后过下来, 其任务时间的表达也不过这几种形式, 想来可以应对大多数定时的场景了.
后面用到不至于再抓瞎了. 简单记录, 留作后面查找.