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分
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于