想要让Crontab任务在精准的时间点运行,咱们得先搞清楚它的语法结构。时间字段从左到右分别代表分钟、小时、日、月还有星期,每一个位置填的都是0到59或者0到23的整数,中间用空格隔开。你既可以填具体的数字,也能用范围符号“-”、列表符号“,”或者步进符号“/”来表示不同的规则。为了方便记忆,我还特意把这些规则整理成了一张小卡片,随时都能拿出来对照。 在正式把任务放进Crontab之前,最好先用在线的Cron表达式测试器跑一遍看看效果。比如想确认一下下一次是不是“明天早上7点”,先测试好再提交,这样就能少掉90%因为没按计划跑而产生的疑惑。 下面这些例子都是用的标准格式,你只要把每一格换成具体的数值或者通配符,就能得到一条可执行的命令。比如每分钟触发一次的话,直接在命令前面留个空格就行了。每小时的第3和第15分钟触发的话,就在小时位置写3和15。上午8点到11点每隔两小时一次的话,写法是3、15 8-11 /2。星期一上午8点到11点触发的话,在星期位置写1。每天晚上21点30分执行的话,把30 21填进去就好。 要是想在每月1号、10号和22号的凌晨4点45分执行任务,就在日位置填1、10、22。周六周日凌晨1点10分触发的话,在星期位置写6和0。每天18点到23点之间每30分钟一次的话要注意了,“-”只能用在分钟位上。 星期六晚上23点执行任务的话有个特别说明:在星期字段里写0或者7都行,但最好保持一致。每小时执行一次的效果和写“/1”是一样的。晚上23点到第二天早上7点之间每小时一次的话要用“23-7/1”。 月初一号凌晨4点执行新年计划的话可以用“jan”作为月份缩写。每小时第5分钟执行日志轮转任务的话直接在分钟位置填5就行了。每天早上5点30分上班打卡的话就是30 5。 月8号早上7点30分发送生日祝福短信的话是30 7 8。到了年度特定日期生成年报的时候把年月日全填数字就行。如果要跨月执行生日祝福短信这样的任务,可以写成“/8”。 如果要指定一个具体日期比如5月30日早上5点执行年报生成的话,就在日月年位置全填数字。