Posted on:
Last modified:
Unix Crontab 时间的语法:
Minute Hour Day Month DoW
每一个选项默认都是第几的意思
另外:
*/xx
表示每 xx 一次比如
5 * * * * echo "hello world"
每小时的第五分钟打印 hello world
更多地例子
* * * * * 每分钟
12 * * * * 每小时第 12 分
0,15,30,45 * * * * 每小时的第 0, 15, 30, 45 分,也就是每 15 分钟一次
0 4 * * * 每天的凌晨 4 点
0 4 * * 2 每周二的凌晨 4 点
*/4 2-6 * * * 2 点和 6 点之间每 4 分钟一次,也就是 0, 4, 8...
应该使用 crontab 命令来编辑 crontab 文件,tab 就是 table 的缩写
crontab -e # 编辑 crontab
crontab -l # 列出 crontab
crontab -u # 指定用户
crontab 还支持一些特殊语法
@hourly 相当于 0 * * * * 也就是每小时执行
@daily 相当于 0 0 * * * 也就是每天执行
@weekly 相当于 0 0 0 0 0
@monthly
@yearly
@reboot at reboot
NOTE:
# add these line to tweak cron behavior
SHELL=/bin/bash
HOME=/
MAILTO="example@digitalocean.com"
cron 表达式难以表达 "every x" 这个语义。比如说每隔 9 个小时如何, 每隔 13 分钟如何如何。
除了 Unix Cron 之外,另一个比较流行的 cron 格式是 Java 中的 Quartz 库使用的 cron。由于 Hadoop 生态系统是基于 Java 的,所以在大数据领域,Quartz 格式可能更流行一点。
Quartz 格式的区别在于:
?
通配符,用于表示未指定,类似 undefined具体定义为:
sec min hour day-of-month month day-of-week year
当使用 day-of-month 时,不能使用 day-of-week,反之亦然,否则会造成冲突。所以 quartz 表达式一般都是这样的形式:
0 0 * * * ?
© 2016-2022 Yifei Kong. Powered by ynotes
All contents are under the CC-BY-NC-SA license, if not otherwise specified.
Opinions expressed here are solely my own and do not express the views or opinions of my employer.
友情链接: MySQL 教程站