cron语法简介

前言

简单的字符串,经过排列组合,总能产生神奇的作用。比如大家耳熟能详的正则表达式,再比如今天要介绍的cron。他们的共同点是简单,但是掌握不好就容易闹笑话。就拿我来说,我想写一个任务,每4个小时执行一次,于是我写下了如下的cron表达式:

* */4 * * *

于是变成了每4小时的每分钟执行一次,也就是每4小时执行60次,如果这个任务比较吃性能,获取还能收获卡死服务器的效果。言归正传,今天来介绍一下cron的语法。在介绍语法之前,先推荐一个网站,https://crontab.guru/, 可以把表达式转换成人类的语言,对于不太熟悉cron的同学来说可以先用这个校验一下,避免犯我这样的错误。

整体

首先要说明的是,根据cron的实现不同,语法上也是有区别的,比如有的实现了秒,有的,-可以一起用。以下的结构来自维基百科:

# ┌───────────── minute (0 - 59)
# │ ┌───────────── hour (0 - 23)
# │ │ ┌───────────── day of the month (1 - 31)
# │ │ │ ┌───────────── month (1 - 12)
# │ │ │ │ ┌───────────── day of the week (0 - 6) (Sunday to Saturday;
# │ │ │ │ │                                   7 is also Sunday on some systems)
# │ │ │ │ │
# │ │ │ │ │
# * * * * *

由上面可知,一个cron表达式由5个部分组成:分,时,一个月的第几天,月,一周的第几天。这里解释一下前面两个天的区别,前面的表示第几号,后面的表示周几。那么每一部分可以取哪些值呢?

  • 分 0-59 *
  • 时 0-23 *
  • 日 1-31 *
  • 月 1-12 *
  • 周 0-6 *

但是光靠上面的值,还是不够,举个例子,如果我们想写个每分钟都执行的任务,那么可以这么写:

* * * * *

但是如果要隔5分钟执行一次,就需要新的语法了

隔几分 ---- /

一个/简单的表达了隔的意思,借助这个符号,我们就可以描述上面的问题了:

*/5 * * * *

但是如果我只是想在20-30分这段时间执行任务呢,那就有请-

从...到... ---- ‘-’

20-30 * * * * 每小时的20-30分执行

30 * * * * 仅在每小时30分执行一次

20-30/2 * * * * 20-30分钟这段时间,每两分钟执行一次

某些 --- ‘,’

正如-经常表示连续的,,经常被用来表示离散的,比如在2,3,5,7,11分钟做某项任务,可以这么写:

2,3,5,7,11 * * * *

,-/也可以一起使用:

2,5-13/4 4 * * * 在第2分钟,第5-13分钟执行一次
2-30/7,5-13/4 * * * * 在第2-30分每隔7分钟, 5-13每分钟执行一次

有了-,/,,这3个符号,我们就可以灵活描述任何复杂的任务了。

缩写语法

月份,周也可以使用缩写语法;

5 0 * JAN-JUL MON-THU  At 00:05 on every day-of-week from Monday through Thursday in every month from January through July

本文完

原文地址:https://www.cnblogs.com/imgss/p/12557964.html

时间: 2024-11-04 17:56:12

cron语法简介的相关文章

MarkDown语法简介

Markdown 语法简介 概述 宗旨 兼容 HTML 特殊字符自动转换 区块元素 段落和换行 标题 区块引用 列表 代码区块 分隔线 区段元素 链接 强调 代码 图片 其它 反斜杠 自动链接 感谢 Markdown 免费编辑器 概述 宗旨 Markdown 的目标是实现「易读易写」. 可读性,无论如何,都是最重要的.一份使用 Markdown 格式撰写的文件应该可以直接以纯文本发布,并且看起来不会像是由许多标签或是格式指令所构成.Markdown 语法受到一些既有 text-to-HTML 格

[转]cron语法

最近在搞whenever时看到可以用cron语法设置定时任务.所以研究了下cron 语法. every '0 0 27-31 * *'do command "echo 'you can use raw cron syntax too'" end cron命令,用于设置周期性被执行的指令. 格式 #文件格式说明 #——分钟 (0 - 59) #| ——小时 (0 - 23) #| | ——日 (1 - 31) #| | | ——月 (1 - 12) #| | | | ——星期 (0 -

freemarker语法简介

ftl是一种模板标记语言,用于渲染数据,输入html结构.语法简介如下: ${book.name} ${book.name?if_exists} //值是否存在 ${book.name??} //值是否存在 ${book.name?has_content} //值是否存在 ${book.name?default("xxx")} //默认值xxx ${book.name!"xxx"} //默认值xxx ${book.date?string("yyyy-mm-

cron语法

最近在搞whenever时看到可以用cron语法设置定时任务.所以研究了下cron 语法. every '0 0 27-31 * *' do command "echo 'you can use raw cron syntax too'" end cron命令,用于设置周期性被执行的指令. 格式 # 文件格式说明 # ——分钟 (0 - 59) # | ——小时 (0 - 23) # | | ——日 (1 - 31) # | | | ——月 (1 - 12) # | | | | ——星

Razor基础语法简介

原文:Razor基础语法简介 Razor的出现,使页面看起更加简洁,Razor的页面后缀为:.cshtmlRazor基础语法:1.代码注释:      多行注释: @*注释信息*@     单行注释: // 注释 1.代码体{...} @{ var x=100; var y=100; string str="this is string": } 在代码体中,没一行都需要用";"结束,代码区中,字母区分大小写.字符类型常量必须用""括起来,2. 由

Android系统Recovery工作原理之使用update.zip升级过程---updater-script脚本语法简介以及执行流程(转)

目前update-script脚本格式是edify,其与amend有何区别,暂不讨论,我们只分析其中主要的语法,以及脚本的流程控制. 一.update-script脚本语法简介: 我们顺着所生成的脚本来看其中主要涉及的语法. 1.assert(condition):如果condition参数的计算结果为False,则停止脚本执行,否则继续执行脚本. 2.show_progress(frac,sec):frac表示进度完成的数值,sec表示整个过程的总秒数.主要用与显示UI上的进度条. 3.for

汇编基本语法简介

转载 http://www.360doc.com/content/10/0926/12/1317564_56492037.shtml 汇编基本语法简介在 AT&T 汇编格式中,寄存器名要加上 '%' 作为前缀:而在 Intel 汇编格式中,寄存器名不需要加前缀.例如:AT&T 格式 Intel 格式 pushl %eax push eax 在 AT&T 汇编格式中,用 '$' 前缀表示一个立即操作数:而在 Intel 汇编格式中,立即数的表示不用带任何前缀.例如:AT&T

perl语法简介

Perl语法简介 1.PERL变量 1.1.Perl变量分类 1.2.Perl变量 1.2.1 Scalar变量 1.2.2 数组变量 1.2.3 标量与数组变量 1.2.4 关联数组 2.PERL运算符 2.1 算数运算符 2.2 位运算符 2.3 比较运算符 2.4 逻辑运算符 2.5 字符运算符 2.6 赋值运算符 2.7 Lvalue 2.8 表运算符 2.9 文件测试运算符 1.PERL变量 1.1.Perl变量分类 Perl变量分为标量变量,数组变量,关联数组变量3类.PERL的变量

【ABAP系列】SAP ABAP7.40新语法简介第一篇

公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP ABAP7.40新语法简介第一篇 前言部分 大家可以关注我的公众号,公众号里的排版更好,阅读更舒适. 正文部分 SAP的系统不断的更新 7.40已经出来很久了,一直忙着没有更新7.40新语法内容 慢慢写点新语法的相关内容 首先说一下7.40的特点及简介 1.ABAP 7.40是AS ABAP 7.31(也称为ABAP 7.