crontab 表达式解析

本贴最后更新于 2277 天前,其中的信息可能已经天翻地覆

1 Linux crontab 表达式

1.1 基本格式

crontab 表达式的"*"表示的是在对应的时间粒度下可取集合中的任意值,这样五个粒度的值确定后,就给出了命令执行的时间点

* * * * * cmd 分 时 日 月 星期 分: 0 - 59 时: 0 - 23 日: 1 - 31 月: 1 - 12 周: 1 - 7
1.1.1 示例 1 每分钟执行一次
* * * * * * date >>~/hello.log

因为每个时间粒度都指定为"*",那么以下集合的笛卡尔积即表示 date 命令所有执行时间点,也就是每分钟执行一次

分钟取值集合{0,1,2,3,...} 60个值可取 小时取值集合{0,1,2,3,..,} 24个值可取 日期取值集合{1,2,3,...} 最多31个值可取 月份取值集合{1,2,3,4,6,7,8,9,10,11,12} 星期取值集合{1,2,3,4,5,6,7}
1.1.2 示例 2 每 10 分钟执行一次
*/10 * * * * date >>~/hello.log
分钟取值集合{0,10,20,30,40,50} 6个值可取 小时取值集合{0,1,2,3,..,} 24个值可取 日期取值集合{1,2,3,...} 最多31个值可取 月份取值集合{1,2,3,4,6,7,8,9,10,11,12} 星期取值集合{1,2,3,4,5,6,7}

执行的时间点:

2月19号星期二23点0分 2月19号星期二23点10分 2月19号星期二23点20分 2月19号星期二23点30分 ... // 类推
1.1.3 示例 3 23 分、37 分钟时执行
23,37 * * * * date >>~/hello.log
分钟取值集合{23,37} 2个值可取 小时取值集合{0,1,2,3,..,} 24个值可取 日期取值集合{1,2,3,...} 最多31个值可取 月份取值集合{1,2,3,4,6,7,8,9,10,11,12} 星期取值集合{1,2,3,4,5,6,7}

执行的时间点:

2月19号星期二23点23分 2月19号星期二23点37分 2月20号星期三0点23分 2月20号星期三0点37分 2月20号星期三1点23分 2月20号星期三1点37分 ... // 类推
1.1.4 示例 4 组合设置

设置其他的时间粒度可以参考上面三个实例,当然也可以组合设置:

0,30 10,11 1,2 11 *
分钟取值集合{0,30} 2个值可取 小时取值集合{10,11} 2个值可取 日期取值集合{1,2} 2个值可取 月份取值集合{11} 1个值可取 星期取值集合{1,2,3,4,5,6,7}

执行的全部时间点:

11月1号10点0分 11月1号10点30分 11月1号11点0分 11月1号11点30分 11月2号10点0分 11月2号10点30分 11月2号11点0分 11月2号11点30分
  • crontab

    crontab 命令常见于 类 Unix 的操作系统之中,用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。该词来源于希腊语 chronos(χρνο),原意是时间。

    12 引用 • 25 回帖 • 1 关注

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...