crontab 指令笔记

前言

之前有个定时任务, 需要每天的9点和21点定时跑. 当时我是这么写的:

0 9 * * * XXX
0 21 * * * XXX

当时经过高人指点, 发现这两条命令可以写成一条:

0 9,21 * * * XXX

好羞耻… 于是, 我决定整理一篇crontab的语法. 防止下次再出现这尴尬的场景…

指令

命令行

  • crontab -l : 查看当前用户的定时任务
  • crontab -e : 编辑当前用户的定时任务

基本有这俩就够用了. 主要是整理一下定时任务的命令格式

定时任务

命令格式如下:

min h d m w XXX

  • min: 分钟(0-59)
  • h: 小时(0-23)
  • d: 日(1-31)
  • m: 月(1-12)
  • w: 星期(0-7) // 0,7都是周日
  • 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个星期五.

举例

  1. 每三小时执行一次
    • 0 */3 * * * XXX
  2. 周一到周五每天下午五点
    • 0 17 * * 1-5 XXX
  3. 每天2,3,4点执行
    • 0 2,3,4 * * * XXX
  4. 每天上午两小时执行一次
    • 0 0-12/2 * * * XXX
  5. 每月第三个星期五12点执行
    • 0 12 * * 5#3 XXX
  6. 每月最后一个星期五12点执行
    • 0 12 * * 5L XXX

最后过下来, 其任务时间的表达也不过这几种形式, 想来可以应对大多数定时的场景了.

后面用到不至于再抓瞎了. 简单记录, 留作后面查找.

©️2020 CSDN 皮肤主题: 书香水墨 设计师:CSDN官方博客 返回首页