Linux 定时任务调度(crontab),太实用了!

简介: Linux 定时任务调度(crontab),太实用了!

概述

crontab命令用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。


可以使用crontab定时处理离线任务,比如每天凌晨2点更新数据等,经常用于系统任务调度。


服务启动和关闭

一般Linux系统中都会装有crontab,如果没有安装可以使用包管理工具安装:image.pngcron.daily是每天执行一次的job

cron.weekly是每个星期执行一次的job

cron.monthly是每月执行一次的job

cron.hourly是每个小时执行一次的job

cron.d是系统自动定期需要做的任务

crontab是设定定时任务执行文件

cron.deny文件就是用于控制不让哪些用户使用Crontab的功能

用户配置文件

每个用户都有自己的crontab配置文件,使用crontab -e命令进行编辑。保存后系统会自动存放与/var/spool/cron/目录中,文件以用户名命名。


linux的crontab服务每隔一分钟去读取一次/var/spool/cron,/etc/crontab,/etc/cron.d下面所有的内容。


crontab命令一览:


crontab -e: 编辑当前用户的定时任务列表

crontab -l: 查看当前用户的定时任务列表

crontab -r: 删除当前用户的定时任务列表

crontab定时任务格式

crontab每一条记录为一个定时任务,定时人遵循相应的定义规则image.png其中前面的6个星号表示的含义如下:


minute: 表示分钟,可以是从0到59之间的任何整数。

hour:表示小时,可以是从0到23之间的任何整数。

day:表示日期,可以是从1到31之间的任何整数。

month:表示月份,可以是从1到12之间的任何整数。

week:表示星期几,可以是从0到7之间的任何整数,这里的0或7代表星期日。

command:要执行的命令,可以是系统命令,也可以是自己编写的脚本文件。

每一个星号部分可用下面的特殊符号:


星号(*):通配符匹配,代表所有可能的值。

逗号(,):可以用逗号隔开的值指定一个列表范围,例如,“1,2,5,7,8,9”。

中杠(-):可以用整数之间的中杠表示一个整数范围,例如“2-6”表示“2,3,4,5,6”。

正斜线(/):可以用正斜线指定时间的间隔频率,例如“0-23/2”表示每两小时执行一次。同时正斜线可以和星号一起使用,例如*/10,如果用在minute字段,表示每十分钟执行一次。

crontab定时任务实例

时间频次示例

下面列举常用的时间频次示例。


00 05 * * * : 每天凌晨5点执行

20 12 1,10,20 * * : 每个月的1号,10号,20号的12:30执行

10 1 * * 6,0 : 表示每周六、周日的1:10分执行

0,30 18-23 * * * : 每天18:00至23:00之间每隔30分钟执行

0 23-7/1 * * * : 晚上11点到早上7点之间,每隔一小时执行

0 6-12/3 * 10 * : 每年10月的每天早上6点到12点每隔3个小时执行一次

30 17 * * 1-5 : 周一到周五下午5点30分执行一次

0 */2 * * * : 每两个小时执行一次

比如我们需要每天23点58分的时候执行一个更新数据的shell脚本,可以用crontab -e命令在最后添加一行:image.pngimage.png近期热文推荐:


1.600+ 道 Java面试题及答案整理(2021最新版)


2.终于靠开源项目弄到 IntelliJ IDEA 激活码了,真香!


3.阿里 Mock 工具正式开源,干掉市面上所有 Mock 工具!


4.Spring Cloud 2020.0.0 正式发布,全新颠覆性版本!


5.《Java开发手册(嵩山版)》最新发布,速速下载!


觉得不错,别忘了随手点赞+转发哦!


image.png


image.pngimage.png


image.png

相关文章
|
1月前
|
监控 Unix Linux
|
1月前
|
人工智能 算法 大数据
Linux内核中的调度算法演变:从O(1)到CFS的优化之旅###
本文深入探讨了Linux操作系统内核中进程调度算法的发展历程,聚焦于O(1)调度器向完全公平调度器(CFS)的转变。不同于传统摘要对研究背景、方法、结果和结论的概述,本文创新性地采用“技术演进时间线”的形式,简明扼要地勾勒出这一转变背后的关键技术里程碑,旨在为读者提供一个清晰的历史脉络,引领其深入了解Linux调度机制的革新之路。 ###
|
1月前
|
算法 Linux 定位技术
Linux内核中的进程调度算法解析####
【10月更文挑战第29天】 本文深入剖析了Linux操作系统的心脏——内核中至关重要的组成部分之一,即进程调度机制。不同于传统的摘要概述,我们将通过一段引人入胜的故事线来揭开进程调度算法的神秘面纱,展现其背后的精妙设计与复杂逻辑,让读者仿佛跟随一位虚拟的“进程侦探”,一步步探索Linux如何高效、公平地管理众多进程,确保系统资源的最优分配与利用。 ####
70 4
|
1月前
|
缓存 负载均衡 算法
Linux内核中的进程调度算法解析####
本文深入探讨了Linux操作系统核心组件之一——进程调度器,着重分析了其采用的CFS(完全公平调度器)算法。不同于传统摘要对研究背景、方法、结果和结论的概述,本文摘要将直接揭示CFS算法的核心优势及其在现代多核处理器环境下如何实现高效、公平的资源分配,同时简要提及该算法如何优化系统响应时间和吞吐量,为读者快速构建对Linux进程调度机制的认知框架。 ####
|
23天前
|
缓存 算法 Linux
Linux内核中的调度策略优化分析####
本文深入探讨了Linux操作系统内核中调度策略的工作原理,分析了不同调度算法(如CFS、实时调度)在多核处理器环境下的性能表现,并提出了针对高并发场景下调度策略的优化建议。通过对比测试数据,展示了调度策略调整对于系统响应时间及吞吐量的影响,为系统管理员和开发者提供了性能调优的参考方向。 ####
|
2月前
|
Linux
Linux Crontab 查看定时任务启动没
【10月更文挑战第20天】在Linux系统中,crontab用于设置周期性执行的任务。查看当前用户的Crontab任务列表,使用`crontab -l`;查看所有用户任务,使用`sudo crontab -l`或指定用户`sudo crontab -u username -l`。
84 5
|
4月前
|
资源调度 监控 网络协议
在Linux中,如何进行系统资源调度?
在Linux中,如何进行系统资源调度?
|
4月前
|
监控 Linux 调度
在Linux中,如何进行调度任务?什么是 crontab 并解释 crontab 中的字段?
在Linux中,如何进行调度任务?什么是 crontab 并解释 crontab 中的字段?
|
4月前
|
负载均衡 算法 Linux
在Linux中,LVS的负载调度算法是什么?
在Linux中,LVS的负载调度算法是什么?
|
4月前
|
资源调度 监控 Linux
在Linux中,如何进行网络资源调度?
在Linux中,如何进行网络资源调度?
下一篇
DataWorks