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