cron表达式介绍和使用

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可以用于自动执行日志轮转,将旧的日志文件归档并开始新的日志记录周期。

  • 22
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

π克

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值