一次讲清楚Linux Cron和 Spring Cron

这篇具有很好参考价值的文章主要介绍了一次讲清楚Linux Cron和 Spring Cron。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一次讲清楚Linux Cron和 Spring Cron,微服务&Spring,Linux,linux,运维,服务器,spring,java

定时任务是我们日常开发中经常用到的一个功能点,无论是Linux服务器上Crontab还是Spring task schedule,都会使用到cron表达式去实现定时任务的配置。不过,一定要注意,Linux cron表达式和Spring的cron表达式不一样,下面来一次讲清楚。

一,Linux cron表达式

1,长度: 5 位 (中间有一个空格)
2,字段含义和取值

一次讲清楚Linux Cron和 Spring Cron,微服务&Spring,Linux,linux,运维,服务器,spring,java

分 时 天 月 周

在以上各个字段中,还可以使用以下特殊字符:

  • "*"代表所有的取值范围内的数字,如月份字段为*,则表示1到12个月;
  • "/"代表每一定时间间隔的意思,如分钟字段为*/10,表示每10分钟执行1次。
  • "-"代表从某个区间范围,是闭区间。如“2-5”表示“2,3,4,5”,小时字段中0-23/2表示在0~23点范围内每2个小时执行一次。
  • ","分散的数字(不一定连续),如1,2,3,4,7,9。
  • cron默认每1分钟扫描一次,全为*即为每分钟一次
  • 月字段还可以为字母L,表示每月最后一天

注:由于各个地方每周第一天不一样,因此Sunday=0(第一天)或Sunday=7(最后1天)。

3,示例

示例:

每一分钟执行一次command(因cron默认每1分钟扫描一次,因此全为*即可)

*    *    *    *    *  command

每小时的第3和第15分钟执行command

3,15   *    *    *    *  command

每天上午8-11点的第3和15分钟执行command:

3,15  8-11  *  *  *  command

每隔2天的上午8-11点的第3和15分钟执行command:

3,15  8-11  */2  *   *  command

每个星期一的上午8点到11点的第3和第15分钟执行command

3,15  8-11   *   *  1 command

每晚的21:30重启smb

30  21   *   *  *  /etc/init.d/smb restart

每月1、10、22日的4 : 45重启smb

45  4  1,10,22  *  *  /etc/init.d/smb restart

每周六、周日的1 : 10重启smb

10  1  *  *  6,0  /etc/init.d/smb restart

每天18 : 00至23 : 00之间每隔30分钟重启smb

0,30  18-23  *  *  *  /etc/init.d/smb restart

每一小时重启smb

*  */1  *  *  *  /etc/init.d/smb restart

晚上11点到早上7点之间,每隔一小时重启smb

*  23-7/1  *   *   *  /etc/init.d/smb restart

每月的4号与每周一到周三的11点重启smb

0  11  4  *  mon-wed  /etc/init.d/smb restart

每小时执行/etc/cron.hourly目录内的脚本

0  */1   *   *   *  root run-parts /etc/cron.hourly

二,Spring cron表达式

1,长度:6 位 (中间有一个空格)
2,字段含义和取值

一次讲清楚Linux Cron和 Spring Cron,微服务&Spring,Linux,linux,运维,服务器,spring,java

秒 分 时 天 月 周 

 注意: 和Linux cron的区别就是多一个秒的配置

  • 字段可能是一个星号*,它表示该字段可以使用的所有范围。对于周或天字段,可以使用问号(?)代替星号

  • ","分散的数字(不一定连续),如1,2,3,4,7,9

  • "-"代表从某个区间范围,是闭区间。如“2-5”表示“2,3,4,5”,小时字段中0-23/2表示在0~23点范围内每2个小时执行一次

  • "/"代表每一定时间间隔的意思,如分钟字段为*/10,表示每10分钟执行1次。

  • 周字段和月字段可以是英文名(Monday,Friday,May,October这些),取前三个字母,忽略大小写

  • 天字段可以是L,表示月的最后一天; 如果是L-1,表示月的倒数第二天

  • 周字段也可以是L,表示周的最后一天

  • 周字段可以使nL,表示每月最后的周n

  • 天字段可以是nW,表示每个月的第n周

  • 天字段可以是LW,表示每个月的最后的一周

  • 周字段可以是d#n,表示一个月的第n周的第d天

3,示例

0 0 * * * *

每天的零时零分

*/10 * * * * *

每10秒

0 0 8-10 * * *

每天8点,9点,10点

0 0 6,19 * * *

每天6点正和19点正

0 0/30 8-10 * * *

每天8:00, 8:30, 9:00, 9:30, 10:00, 10:30

0 0 9-17 * * MON-FRI

周一到周五的9点到17点

0 0 0 25 DEC ?

圣诞夜零时

0 0 0 L * *

每个月最后一天零时

0 0 0 L-3 * *

每月倒数第4天零时

0 0 0 * * 5L

每月最后的周五零时

0 0 0 * * THUL

每月最后的周四零时

0 0 0 1W * *

每月第一周的零时

0 0 0 LW * *

每月最后一周的零时

0 0 0 ? * 5#2

每个月的第二周的周五的午夜零时

0 0 0 ? * MON#1

每个月的第一个周一的午夜零时

4,注解用法

上面这些示例,都是在注解@Scheduled(cron = "0 0 0 LW * *") 中使用,还有一些快捷的方式,用法如:@Scheduled(cron = "@hourly")

@yearly (or @annually)

0 0 0 1 1 *

@monthly

0 0 0 1 * *

@weekly

0 0 0 * * 0

@daily (or @midnight)

0 0 0 * * *

@hourly

0 0 * * * *

码字不易,记得点赞关注哟文章来源地址https://www.toymoban.com/news/detail-681526.html

到了这里,关于一次讲清楚Linux Cron和 Spring Cron的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Linux运维】shell脚本检查服务器内存和CPU利用率

    在管理服务器时候写了一个 shell脚本,在服务上实现每天凌晨3点查系统的指定文件夹下的容量大小,如果超过10G就要删除3天前的内容,还要时刻查询内存和cpu利用率,如果超过80%就要提示用户出现过载 将以上代码保存为一个.sh文件,然后通过crontab在每天凌晨3点运行即可:

    2024年02月09日
    浏览(67)
  • Linux服务器常见运维性能测试(1)综合跑分unixbench、superbench

    最近需要测试一批服务器的相关硬件性能,以及在常规环境下的硬件运行稳定情况,需要持续拷机测试稳定性。所以找了一些测试用例。本次测试包括在服务器的高低温下性能记录及压力测试,高低电压下性能记录及压力测试,常规环境下CPU满载稳定运行的功率记录。 这个系

    2024年02月04日
    浏览(82)
  • Linux本地部署1Panel服务器运维管理面板并实现公网访问

    1Panel 是一个现代化、开源的 Linux 服务器运维管理面板。高效管理,通过 Web 端轻松管理 Linux 服务器,包括主机监控、文件管理、数据库管理、容器管理等 下面我们介绍在Linux 本地安装1Panel 并结合cpolar 内网穿透工具实现远程访问1Panel 管理界面 执行如下命令一键安装 1Panel: 安

    2024年02月04日
    浏览(98)
  • [1Panel]开源,现代化,新一代的 Linux 服务器运维管理面板

    本期测评试用一下1Panel这款面板。1Panel是国内飞致云旗下开源产品。整个界面简洁清爽,后端使用GO开发,前端使用VUE的Element-Plus作为UI框架,整个面板的管理都是基于docker的,想法很先进。官方还提供了视频的使用教程,本期为大家按照本专栏的基本内容进行多方面的测评。

    2024年02月07日
    浏览(94)
  • Stable Diffusion Webui在Linux服务器第一次运行不能连接huggingface

    第一次运行stable-diffusion-webui出现了如下错误 由于网络原因, hugging face在国内无法访问, 所以出现了该错误, 笔者所使用的Linux服务器不能使用非常的上网手段, 通过在本地windows运行stable-diffusion-webui并进行排查, 找到了问题所在 Linux服务器的~/.cache/huggingface/hub/目录下需models--op

    2024年02月05日
    浏览(60)
  • 菜鸟的linux云服务器第一次木马入侵处理记录(名为xmrigMiner的木马)

    2023.13.39分收到腾讯发来的提醒 查了一下后台,是这个样子 显示的是cpu与内存占用极高,不停有写入操作 大写的懵逼,第一反应是先关机 但是没屁用,cpu与内存占用居高不下 我处理的主要过程如下 kill进程没用,还会重新启动。查了半天资料,说是让我看看 启用命令 卧槽,

    2024年02月13日
    浏览(58)
  • Linux服务器常见运维性能测试(3)CPU测试super_pi、sysbench

    最近需要测试一批服务器的相关硬件性能,以及在常规环境下的硬件运行稳定情况,需要持续拷机测试稳定性。所以找了一些测试用例。本次测试包括在服务器的高低温下性能记录及压力测试,高低电压下性能记录及压力测试,常规环境下CPU满载稳定运行的功率记录。 这个系

    2024年02月02日
    浏览(55)
  • 华为云云耀云服务器L实例评测 | Linux系统宝塔运维部署H5游戏

    本章节内容,我们主要介绍华为云耀服务器L实例,从云服务的优势讲起,然后讲解华为云耀服务器L实例资源面板如何操作,如何使用宝塔运维服务,如何使用运维工具可视化安装nginx,最后部署一个自研的H5的小游戏(6岁的小朋友玩的很开心😁)。 前端的同学如果想把自己

    2024年02月07日
    浏览(58)
  • Linux服务器配置SSH免密码登录后,登录仍提示输入密码(一次真实的问题排查解决记录)

    我们知道两台Linux服务器机器之间如果使用ssh命令登录或scp/rsync命令传输文件每一次都需要输入用户名相对应的密码,如果要免密码,则需要对两台Linux服务器机器之间进行SSH互信。 虽然这是废话,也希望大家了解一下。 SSH(Secure Shell)是一种安全的传输协议,它可以让Lin

    2024年02月09日
    浏览(62)
  • Xshell “所选的用户密钥未在远程主机上注册,请再试一次”SSH 登录远程linux服务器(良心整理)

    这个问题真的要把我逼疯了,为什么呢? 为了解决这个问题,我搜遍了CSDN、知乎、简书上的解决方案,CSDN上的回答真的是水文太多,相互抄,抄就抄吧,只抄一半。这让真正想解决问题的人走了太多的弯路。 也不知道是谁写的原文,可能作者解决了,但是写的很不清楚,也

    2023年04月15日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包