cron表达式介绍和使用

news2024/11/26 5:24:43

Cron表达式是一种用于配置定时任务的字符串,它由数字、字符和符号组成,用于指定任务在某个时间点或周期性地执行。其通常包含六个或七个字段,每个字段代表一个时间单位,如下表所示:

必须取值范围特殊字符
[0, 59]* , - /
分钟[0, 59]* , - /
小时[0, 23]* , - /
日期[1, 31]* , - / ? L W
月份[1, 12]或[JAN, DEC]* , - /
星期[1, 7]或[MON, SUN]。若使用[1, 7]表达方式,1代表星期一,7代表星期日。* , - / ? L #
年份1970+- * /

特殊字符

每一个域都使用数字,但还可以出现如下特殊字符,它们的含义是:

  • *:表示匹配该域的任意值。假如在分钟使用 *, 即表示每分钟都会触发事件。

  • ?:只能用在日期和星期两个域。例如想在每月的20日触发调度,不管20日到底是星期几,则只能使用如下写法: 13 13 15 20 * ?, 其中最后一位只能用?,而不能使用*,如果使用表示不管星期几都会触发,当然使用时将导致无法运行出结果。

  • -:表示范围。例如在分钟域中使用5-20,表示从5分到20分钟每分钟触发一次

  • /:表示起始时间开始触发,然后每隔固定时间触发一次。例如在分钟域使用5/20,则意味着5分钟触发一次,而25,45等分别触发一次.

  • ,:表示列出枚举值。例如:在分钟域使用5,20,则意味着在5和20分每分钟触发一次。L:表示最后,只能出现在日期和星期两个域。如果在星期域使用5L,意味着在最后的一个星期四触发。

  • W:表示有效工作日(周一到周五),只能出现在日期域,系统将在离指定日期的最近的有效工作日触发事件。例如:在 星期使用5W,如果5日是星期六,则将在最近的工作日:星期五,即4日触发。如果5日是星期天,则在6日(周一)触发;如果5日在星期一到星期五中的一天,则就在5日触发。另外一点,W的最近寻找不会跨过月份 。

  • LW:这两个字符可以连用,表示在某个月最后一个工作日,即最后一个星期五。

  • #:用于确定每个月第几个星期几,只能出现在星期域。例如在4#2,表示某月的第二个星期三。

常用表达式例子

以下是一些常用的cron表达式示例,以及它们的含义:

  1. 0 0 * * * - 每天每小时的开始(即每小时的0分0秒)。
  2. 0 15 10 * * * - 每天上午10点15分。
  3. 0 0 12 * * ? - 每天中午12点整。
  4. 0 15 10 ? * MON-FRI - 工作日的上午10点15分。
  5. 0 0 12 1 * ? - 每年1月1日中午12点整。
  6. 0 0 12 12 * ? - 每年12月12日中午12点整。
  7. 0 0 12 Jan * ? - 每年1月的每天中午12点整。
  8. 0 15 10 * * ? - 每月的每天上午10点15分。
  9. 0 0 12 * * ? - 每周的每天中午12点整(注意:有些系统不支持在星期字段中使用问号,这时可以用“*”代替)。
  10. 0 5 14,18 * * ? - 每天的下午2点和6点,当分钟为5时触发。
  11. 0 0/5 14 * * ? - 每天下午2点开始,每隔5分钟触发一次。
  12. 0 0/5 14,18 * * ? - 每天的下午2点到2:55和下午6点到6:55之间,每隔5分钟触发一次。

应用场景

在这里插入图片描述

cron定时任务在Unix和类Unix系统(包括Linux)中被广泛使用。cron允许系统管理员和用户安排作业(命令或脚本)在特定时间自动执行,无需人工干预。以下是cron的一些应用场景:

  1. 定期备份:Cron可以用于自动执行备份脚本,确保数据定期复制到安全位置。这对于防止数据丢失至关重要,因为可以按照小时、日、周或月来设置备份任务。

  2. 系统维护任务:系统管理员可以使用Cron来安排定期的系统维护任务,如更新软件包、清理临时文件、检查磁盘空间、优化数据库等。

  3. 定时报告:企业可以利用Cron定时生成业务报告、分析报告或其他类型的报告,并在特定时间发送给相关人员。

  4. 内容更新:对于网站和博客,Cron可以用来定时发布文章或更新内容,使得内容管理系统能够自动化地按计划发布材料。

  5. 监控服务:Cron作业可以用来监控服务器和服务的状态,如果检测到问题,可以自动触发警告或者恢复程序。

  6. 日志轮转:Cron可以用于自动执行日志轮转,将旧的日志文件归档并开始新的日志记录周期。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1449176.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

OpenGL-ES 学习(2)---- DepthTest

深度测试 OpenGL-ES 深度测试是指在片段着色器执行之后,利用深度缓冲区所保存的深度值决定当前片段是否被丢弃的过程 深度缓冲区通常和颜色缓冲区有着相同的宽度和高度,一般由窗口系统自动创建并将其深度值存储为 16、 24 或 32 位浮点数。(注意只保存…

EasyRecovery2024全新官方汉化中文版下载

确实,EasyRecovery以其强大的功能而闻名。以下是它的一些主要功能特点: 全面恢复能力:EasyRecovery可以恢复从各种存储设备中丢失的数据,包括硬盘、U盘、SD卡、数码相机、手机等。无论是因为误删除、格式化、分区丢失、病毒攻击还…

2-7基础算法-位运算

一.基础 位运算经常考察异或的性质、状态压缩、与位运算有关的特殊数据结构、构造题。 位运算只能应用于整数,且一般为非负整数,不能应用于字符、浮点等类型。 左移操作相当于对原数进行乘以2的幂次方的操作,低位补0 右移操作相当于对原数进…

Elasticsearch使用场景深入详解

Elasticsearch是一个开源的、分布式的、RESTful风格的搜索和数据分析引擎。它能够解决越来越多的用例,并不仅仅局限于全文搜索。以下是Elasticsearch的一些主要使用场景及其深入详解。 1. 全文搜索 Elasticsearch最初和最基本的应用场景就是全文搜索。全文搜索是指…

上位机图像处理和嵌入式模块部署(上位机主要功能)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 目前关于机器视觉方面,相关的软件很多。比如说商业化的halcon、vision pro、vision master,当然也可以用opencv、pytorch自…

第18讲 投票帖子管理实现

后端&#xff1a; /*** 删除指定id的投票信息* param id* return*/ GetMapping("/delete/{id}") Transactional public R delete(PathVariable(value "id")Integer id){voteDetailService.remove(new QueryWrapper<VoteDetail>().eq("vote_id…

clang前端

Clang可以处理C、C和Objective-C源代码 Clang简介 Clang可能指三种不同的实体&#xff1a; 前端&#xff08;在Clang库中实现&#xff09;编译驱动程序&#xff08;在clang命令和Clang驱动程序库中实现&#xff09;实际的编译器&#xff08;在clang-ccl命令中实现&#xff0…

Codeforces Round 925 (Div. 3) E. Anna and the Valentine‘s Day Gift (Java)

Codeforces Round 925 (Div. 3) E. Anna and the Valentine’s Day Gift (Java) 比赛链接&#xff1a;Codeforces Round 925 (Div. 3) E题传送门&#xff1a;E. Anna and the Valentine’s Day Gift 题目&#xff1a;E. Anna and the Valentine’s Day Gift 样例 #1 样例输…

DS:二叉树的顺序结构及堆的实现

创作不易&#xff0c;兄弟们给个三连&#xff01;&#xff01; 一、二叉树的顺序存储 顺序结构指的是利用数组来存储&#xff0c;一般只适用于表示完全二叉树&#xff0c;原因如上图&#xff0c;存储不完全二叉树会造成空间上的浪费&#xff0c;有的人又会问&#xff0c;为什么…

JVM(1)基础篇

1 初始JVM 1.1 什么是JVM JVM 全称是 Java Virtual Machine&#xff0c;中文译名 Java虚拟机。JVM 本质上是一个运行在计算机上的程序&#xff0c;他的职责是运行Java字节码文件。 Java源代码执行流程如下&#xff1a; 分为三个步骤&#xff1a; 编写Java源代码文件。 使用…

SpringBoot+Vue3 完成小红书项目

简介 该项目采用微服务架构&#xff0c;实现了前后端分离的系统设计。在前端&#xff0c;我们选择了 Vue3 配合 TypeScript 和 ElementUi 框架&#xff0c;以提升开发效率和用户体验。而在后端&#xff0c;则是运用 SpringBoot 和 Mybatis-plus 进行开发&#xff0c;保证了系统…

CFS三层靶机

参考博客&#xff1a; CFS三层内网靶场渗透记录【详细指南】 - FreeBuf网络安全行业门户 CFS三层靶机搭建及其内网渗透【附靶场环境】 | TeamsSix CFS三层网络环境靶场实战 - PANDA墨森 - 博客园 (cnblogs.com) CFS三层靶机实战--内网横向渗透 - 知乎 (zhihu.com) CFS靶机…

C++类和对象-C++对象模型和this指针->成员变量和成员函数分开存储、this指针概念、空指针访问成员函数、const修饰成员函数

#include<iostream> using namespace std; //成员变量 和 成员函数 分开储存的 class Person { public: Person() { mA 0; } //非静态成员变量占对象空间 int mA; //静态成员变量不占对象空间 static int mB; //函数也不占对象空间…

安卓价值1-如何在电脑上运行ADB

ADB&#xff08;Android Debug Bridge&#xff09;是Android平台的调试工具&#xff0c;它是一个命令行工具&#xff0c;用于与连接到计算机的Android设备进行通信和控制。ADB提供了一系列命令&#xff0c;允许开发人员执行各种操作&#xff0c;包括但不限于&#xff1a; 1. 安…

儿时游戏“红色警戒”之“AI警戒”

一、红色警戒里“警戒”命令背后的算法原理是什么 在《红色警戒》系列即时战略游戏中&#xff0c;“警戒”命令背后的算法原理相对简单但又实用&#xff0c;其核心目标是让单位能够自动检测并反击一定范围内的敌方单位。虽然具体的实现细节未公开&#xff0c;但可以推测其基本…

ICLR 2023#Learning to Compose Soft Prompts for Compositional Zero-Shot Learning

组合零样本学习&#xff08;CZSL&#xff09;中Soft Prompt相关工作汇总&#xff08;一&#xff09; 文章目录 组合零样本学习&#xff08;CZSL&#xff09;中Soft Prompt相关工作汇总&#xff08;一&#xff09;ICLR 2023#Learning to Compose Soft Prompts for Compositional…

变形金刚:第 2 部分:变形金刚的架构

目录 一、说明 二、实现Transformer的过程 第 1 步&#xff1a;代币化&#xff08;Tokenization&#xff09; 第 2 步&#xff1a;对每个单词进行标记嵌入 第 3 步&#xff1a;对每个单词进行位置嵌入 第 4 步&#xff1a;输入嵌入 第 5 步&#xff1a;编码器层 2.5.1 多头自注…

Linux makefile 大型多文件的处理

最简单的例子是 main.cpp test.cpp test.h 首先将这三个写好 然后的话 test.cpp 上面输出 helloworld 首先我们在同一个目录下创建一个makefile 文件 然后用vim 编辑它 如下图&#xff08;使用的c&#xff09; mybin 是我们的可执行程序 gcc是编译的命令 gcc 前面必…

[HCIE]vxlan --静态隧道

实验目的:1.pc2与pc3互通&#xff08;二层互通&#xff09;&#xff1b;2.pc1与pc3互通&#xff08;三层互通&#xff09; 实验说明&#xff1a;sw1划分vlan10 vlan20 ;sw2划分vlan30&#xff1b;上行接口均配置为Trunk 实验步骤&#xff1a; 1.配置CE1/CE2/CE3环回口互通&a…

深度学习之反向传播算法

反向传播算法 数学公式算法代码结果 算法中一些函数的区别 数学公式 算法代码 这里用反向传播算法&#xff0c;计算 y w * x模型 import numpy as np import matplotlib.pyplot as ply#反向传播算法&#xff0c;需要使用pytorch框架&#xff0c; #这里导入pytorch框架&#xf…