Cron介绍,以及常见的cron表达式

简介: Cron介绍,以及常见的cron表达式

一.cron介绍

1.什么是Cron?

  • Cron是一个Unix和类Unix操作系统的时间基准软件。它允许用户在预定时间执行命令或脚本,这些任务可以是单次性的,也可以是按照设定的时间表重复执行的。Cron通常被用于周期性地备份文件、定期运行系统维护任务、发送邮件通知等。
  • Cron依赖于一个称为"crontab"的配置文件来管理任务列表。通过编辑crontab文件,用户可以设置要执行的命令、执行命令的时间表以及其他相关信息。Crontab文件中的每一行代表一个要执行的任务,其中包括了任务的执行时间(分钟、小时、日期等)和要执行的命令。
  • 在Linux系统中,可以使用crontab -e命令来编辑当前用户的cron任务列表,或者使用/etc/crontab文件来设置系统范围内的任务。通过合理配置cron任务,用户可以自动化许多重复性的工作,提高系统的效率和可靠性。

2.Cron语法

字段 允许值 允许的特殊字符
秒 (Seconds) 0-59 , - * /
分 (Minutes) 0-59 , - * /
小时 (Hours) 0-23 , - * /
日 (Day of month) 1-31 , - * ? / L W C
月 (Month) 1-12 or JAN-DEC , - * /
周几 (Day of week) 0-7 or SUN-SAT , - * ? / L C #

时间字段的取值范围如下:

  • 分钟(0-59)
  • 小时(0-23)
  • 日期(1-31)
  • 月份(1-12)
  • 星期(0-7,其中0和7都代表星期日)

时间字段支持以下特殊字符:

  • *:匹配所有可能的值。
  • ,:用逗号分隔多个值。
  • -:表示一个范围。例如,1-5表示1到5。
  • /:用于指定间隔值。例如,*/5表示每隔5个单位。

下面是一些示例:

  • * * * * * command:每分钟执行一次命令。
  • 0 2 * * * command:在每天凌晨2点执行命令。
  • 0 8-18/2 * * * command:在每天上午8点至下午6点之间,每隔两个小时执行一次命令。

请注意,cron表达式的时间是基于服务器的本地时间。确保您设置的时间与预期的执行时间相匹配,并考虑时区差异

3.虚拟机安装cron(centos7展示)

yum install cronie
  1. 注意:在较新的 CentOS 版本上(如 CentOS 8),cron 被替换为 cronie,因此需要安装 cronie。
  1. 安装完成后,使用以下命令启动 cron 服务并设置为开机自启:
systemctl start crond systemctl enable crond

3.确认 cron 服务已经成功启动,可以使用以下命令检查服务状态:

systemctl status crond

如果显示 "active (running)",则表示 cron 服务已经成功启动

二.常见的cron表达式

Cron 表达式 含义
0 0 12 * * ? 每天中午 12 点执行
0 15 10 ? * * 每天上午 10:15 执行
0 0/5 14 * * ? 每天下午 2 点开始,每隔 5 分钟执行一次
0 0/2 8-18 * * ? 每天上午 8 点到下午 6 点之间,每隔 2 分钟执行一次
0 0 6,18 * * ? 每天早上 6 点和晚上 6 点执行
0 0/3 * * * ? 每小时的第 0 分钟开始,每隔 3 分钟执行一次
0 0 9-17 * * MON-FRI 周一到周五的上午 9 点到下午 5 点之间,每天执行一次
0 0 12 1 */2 ? 每两个月的第 1 天中午 12 点执行
0 0 10 ? * 6L 每月最后一个周六的上午 10 点执行
@reboot 系统启动时执行任务


相关文章
|
druid Java 关系型数据库
【Java】Springboot整合多数据源配置
【Java】Springboot整合多数据源配置
1494 0
|
10月前
|
缓存 NoSQL Java
Redis应用—6.热key探测设计与实践
热key问题在高并发系统中可能导致数据层和服务层的严重瓶颈,如Redis集群瘫痪和用户体验下降。为解决此问题,京东开发了JdHotkey热key探测框架,具备实时性、准确性、集群一致性和高性能等特点。该框架由etcd集群、Client端jar包、Worker端集群和Dashboard控制台组成,通过分布式计算快速识别热key并推送至应用内存,有效减轻数据层负载,提升服务性能。JdHotkey适用于多种场景,安装部署简便,支持毫秒级热key探测和集群一致性维护。
525 61
Redis应用—6.热key探测设计与实践
|
9月前
|
SQL 前端开发 Java
深入理解 Spring Boot 项目中的分页与排序功能
本文深入讲解了在Spring Boot项目中实现分页与排序功能的完整流程。通过实际案例,从Service层接口设计到Mapper层SQL动态生成,再到Controller层参数传递及前端页面交互,逐一剖析每个环节的核心逻辑与实现细节。重点包括分页计算、排序参数校验、动态SQL处理以及前后端联动,确保数据展示高效且安全。适合希望掌握分页排序实现原理的开发者参考学习。
643 4
|
机器学习/深度学习 Linux Perl
Linux文本处理三剑客之sed详解
这篇博客详细讲解了Linux中的文本处理工具sed的使用方法和常用命令。
717 9
Linux文本处理三剑客之sed详解
cron表达式
cron表达式
758 0
|
Oracle 关系型数据库 数据库
实时计算 Flink版产品使用问题之连接到Oracle数据库但无法读取到数据,是什么导致的
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
调度
cron表达式
cron表达式
290 2
|
Docker 容器
SrpingBoot 集成 xxl-job 部署在 Docker 上碰到的坑
SrpingBoot 集成 xxl-job 部署在 Docker 上碰到的坑
548 0
|
缓存 测试技术 调度
cron表达式详解
cron表达式详解
1839 0
|
JavaScript 前端开发 Unix
一篇学会cron表达式
# 1、定义 Cron表达式是一种用于定义定时任务的格式化字符串。它被广泛用于Unix、Linux和类Unix系统中,用于在指定的时间执行预定的任务。Cron表达式由6个字段组成,每个字段通过空格分隔开。 在本文中,我们将学习如何理解和编写Cron表达式。 Cron表达式的格式如下: ```javascript * * * * * * | | | | | | | | | | | +-- 星期(周日=0 或 7) | | | | +---- 月份(1-12) | | | +------ 日期(1-31) | | +-------- 小时(0-23) | +-------
881 1
一篇学会cron表达式