Linux系统下的延迟任务及定时任务
1、延迟任务
概念:
at命令用法(发起延迟命令)
- at 命令执行是调用的是 atd 服务,即使系统最小化安装 atd 也会被安装到系统中
- at 任务信息存放在系统中/var/spool/at目录中
- at 任务的日志文件被存放到/var/log/cron中
- at 任务执行时如果遇到系统处于关闭状态,那么在开启时 atd 任务会检测未执行的任务并且立即执行
基本用法
前置条件:【 # systemctl status atd.service 查看延时任务有无开启】atd 是系统延时任务的守护进程,如果此程序关闭,那么系统延时任务无法使用。
at 用于安排一次性延迟任务,格式为 at [参数] [时间],输入命令后按 Ctrl+D 保存(会显示<EOT>)。
at 命令参数
at命令常用参数 | |
-m | 当任务完成之后,即使没有标准输出,将给用户发送邮件(启用邮件需建立软件仓库并安装邮件系统) |
-l | atq的别名,可列出目前系统上面的所有该用户的at调度 |
-d | atrm的别名,可以取消一个在at调度中的工作 |
-r | 删除任务(效果和 -d 类似) |
-v | 使用较明显的时间格式,列出at调度中的任务列表 |
-V | 显示at的版本 |
-c | 可以列出后面接的该项工作的实际命令内容 |
-f | 从文件中读取任务 |
at 命令的时间表示方法
- HH:MM 在今天的HH小时MM分钟执行,如果今天的这个时间点已经过了,则明天执行
- HH:MM YYYY-MM-DD 强制规定在某年某月的某一天的特殊时刻进行该工作
- now + 2 minutes 从现在开始几分钟minutes, hours, days, or weeks
格式示例:
at now +5 minutes 5分钟后执行
at 14:30 今日14:30执行
at 2:30 tomorrow 明天2:30执行
at teatime 16:00(支持关键词如 teatime、midnight)
如何非交互的设定延迟任务


延迟任务的安全优化
- at任务在执行时首先会查看执行者是否在名单中
- 系统中默认只存在黑名单/etc/at.deny,写入此文件中的用户会被禁止使用at任务
- 在系统中可以手动建立白名单/etc/at.allow,当此文件出现黑名单不会被检测
- 白名单出现只有root用户和白名单用户可以执行at任务
- 如果系统中没有黑白名单那么只有root用户可以执行任务
- 黑白名单为用户列表,每个用户一行
二、定时任务
定时任务介绍
- 和延迟任务类似,我们可以用crontab来解决自动进行的周期性的维护
- 定时任务类似手机闹钟,会重复执行
- 当定时任务产生输出后,这些输出会以邮件的形式发送给延迟任务发起者
- 在RHEL9中默认系统中的所有普通用户都可以发起定时任务
定时任务发起
- # systemctl status crond.service 【定时任务的守护进程】
- 在系统中我们可以使用crontab命令来发起用户级定时任务
- 在系统中/etc/cronfilename 是系统级定时任务,只有root用户可以发起
- 定时任务执行是调用的是crond服务,即使系统最小化安装crond也会被安装到系统中
- 定时任务信息存放在系统中/var/spool/cron目录中,存放文件和发起人名称一致
- 定时任务的日志文件被存放到/var/log/cron中
- 定时任务执行时如果遇到系统处于关闭状态,那么在开启时crond任务会检测未执行的任务并且立即执行
发起用户级周期行任务
周期任务发起方式(crontab 命令)
crontab命令参数
crontab命令参数 | |
-u | 用来设定某个用户的 crontab 服务此参数一般有 root 用户来运行 |
file | 用来设定某个用户的 crontab 服务此参数一般有 root 用户来运行 |
-e | 编辑某个用户的 crontab 文件内容。如果不指定用户,则表示编辑当前用户的 crontab 文件。 |
-l | 显示某个用户的 crontab 文件内容,如果不指定用户,则表示显示当前用户的 crontab 文件内容。 |
-r | 从 /var/spool/cron 目录中删除某个用户的 crontab 文件 |
-i | 在删除用户的 crontab 文件时给确认提示。 |
文件时间表示格式
crontab 时间字段为五个星号(* * * * *),分别表示:
分钟(0-59) 小时(0-23) 日(1-31) 月(1-12) 周几(0-7, 0和7均为周日)
常用符号 | |
* | 任意值 |
, | 多个值(如 1,3,5) |
- | 范围(如 1-5) |
*/n | 步长(如 /3 每3单位) |
* | 每个 | * * * * * | 每分钟 |
1,5 | 1和5 | 11,05*** | 1:10和5:00 |
1-5 | 1到5 | *1-5**** | 1点到5点的每分钟 |
*/5 | 每隔5 | */5**** | 每隔5分钟 |
crontab用户级任务管理
编辑任务
crontab -e 编辑当前用户的任务
查看任务
crontab -l 列出当前用户的任务
删除任务
crontab -r 删除所有任务
发起系统级别的周期任务
系统级别crontab目录详解
/etc/cron.d | 系统自定义周期任务 |
/etc/cron.daily | 每天周期任务 |
/etc/cron.hourly | 每小时周期任务 |
/etc/cron.monthly | 每月周期任务 |
/etc/cron.weekly | 每周周期任务 |
自定义周期任务设置方式
# vim /etc/cron.d/job分钟 小时 天 月 周 用户 动作1 09-17 * * * root date以root身份每天9点-17点每1分执行date
crontab用户级安全限制
通过 /etc/cron.allow 和 /etc/cron.deny 控制权限
规则优先级:
- 若 cron.allow 存在,仅允许其中的用户使用 crontab。
- 若 cron.allow 不存在,检查 cron.deny,拒绝其中的用户。
- 若两者均不存在,默认行为因系统而异(通常允许所有用户)。
配置示例:
echo "admin" >> /etc/cron.allow 仅admin可使用cron
echo "guest" >> /etc/cron.deny 禁止guest使用cron
定时任务执行优化


相关文章:

Linux系统下的延迟任务及定时任务
1、延迟任务 概念: 在系统中我们的维护工作大多数时在服务器行对闲置时进行 我们需要用延迟任务来解决自动进行的一次性的维护 延迟任务时一次性的,不会重复执行 当延迟任务产生输出后,这些输出会以邮件的形式发送给延迟任务发起者 在 RH…...
Spark 之 YarnCoarseGrainedExecutorBackend
YarnCoarseGrainedExecutorBackend executor ID , 在日志里也有体现。 25/05/06 12:41:58 INFO YarnCoarseGrainedExecutorBackend: Successfully registered with driver 25/05...

【网络原理】数据链路层
目录 一. 以太网 二. 以太网数据帧 三. MAC地址 四. MTU 五. ARP协议 六. DNS 一. 以太网 以太网是一种基于有线或无线介质的计算机网络技术,定义了物理层和数据链路层的协议,用于在局域网中传输数据帧。 二. 以太网数据帧 1)目标地址 …...

相或为K(位运算)蓝桥杯(JAVA)
这个题是相或为k,考察相或的性质,用俩个数举例子,011001和011101后面的数不管和哪个数相或都不可能变成前面的数,所以利用这个性质我们可以用相与运算来把和k对应位置的1都积累起来,看最后能不能拼起来k如果能拼起来k那…...

AI汽车时代的全面赋能者:德赛西威全栈能力再升级
AI汽车未来智慧出行场景正在描绘出巨大的商业图景,德赛西威已经抢先入局。 在2025年上海车展开幕前夕,德赛西威发布2030年全新使命愿景——“创领安全、愉悦和绿色的出行生活”,并推出全栈式智慧出行解决方案Smart Solution3.0、车路云一体式…...
Python函数:从基础到进阶的完整指南
在Python编程中,函数是构建高效、可维护代码的核心工具。无论是开发Web应用、数据分析还是人工智能模型,函数都能将复杂逻辑模块化,提升代码复用率与团队协作效率。本文将从函数基础语法出发,深入探讨参数传递机制、高阶特性及最佳实践,助你掌握这一编程基石。 一、函数基…...

学习Python的第四天之网络爬虫
30岁程序员学习Python的第四天之网络爬虫的Scrapy库 Scrapy库的基本信息 Scrapy库的安装 在windows系统中通过管理员权限打开cmd。运行pip install scrapy即可安装。 通过命令scrapy -h可查看scrapy库是否安装成功. Scrapy库的基础信息 scrapy库是一种爬虫框架库 爬虫框…...

5、开放式PLC梯形图编程组件 - /自动化与控制组件/open-plc-programming
76个工业组件库示例汇总 开放式PLC编程环境 这是一个开放式PLC编程环境的自定义组件,提供了一个面向智能仓储堆垛机控制的开放式PLC编程环境。该组件采用苹果科技风格设计,支持多厂商PLC硬件,具有直观的界面和丰富的功能。 功能特点 多语…...
数据指标和数据标签
数据指标和数据标签是数据管理与分析中的两个重要概念,它们在用途、形式和应用场景上有显著区别。以下是两者的详细对比: 1. 核心定义 维度数据指标(Data Metrics)数据标签(Data Tags/Labels)定义量化衡量…...

linux中常用的命令(三)
目录 1- ls(查看当前目录下的内容) 2- pwd (查看当前所在的文件夹) 3- cd [目录名](切换文件夹) 4- touch [文件名] (如果文件不存在,新建文件) 5- mkdir[目录名] (创建目录) 6-rm[文件名]&…...

Java 中 AQS 的实现原理
AQS 简介 AQS(全称AbstractQueuedSynchronizer)即抽象同步队列,它是实现同步器的基础组件,并发包中锁的底层就是使用AQS实现的。 由类图可以看到,AQS是一个FIFO的双向队列,其内部通过节点head和tail记录队首和队尾元素࿰…...

『Python学习笔记』ubuntu解决matplotlit中文乱码的问题!
ubuntu解决matplotlit中文乱码的问题! 文章目录 simhei.ttf字体下载链接:http://xiazaiziti.com/210356.html将字体放到合适的地方 sudo cp SimHei.ttf /usr/share/fonts/(base) zkfzkf:~$ fc-list | grep -i "SimHei" /usr/local/share/font…...
docker compose ps 命令
docker compose ps 命令用于列出与 Docker Compose 项目相关的容器及其状态。 docker compose ps 能显示当前项目中所有服务容器的运行状态、端口映射等信息。 语法 docker compose ps [OPTIONS] [SERVICE…] SERVICE(可选):指定要查看状态…...
redis数据结构-04 (HINCRBY、HDEL、HKEYS、HVALS)
哈希操作:HINCRBY、HDEL、HKEYS、HVALS Redis 中的哈希功能极其丰富,让您能够以类似于编程语言中对象的方式存储和检索数据。本课将深入探讨具体的哈希操作,这些操作为操作以下结构中的数据提供了强大的工具: HINCRBY 、 HDEL 、…...

鸿蒙知识总结
判断题 1、 在http模块中,多个请求可以使用同一个httpRequest对象,httpRequest对象可以复用。(错误) 2、订阅dataReceiverProgress响应事件是用来接收HTTP流式响应数据。(错误) 3、ArkTS中变量声明时不需要…...
Ubuntu 22虚拟机【网络故障】快速解决指南
Ubuntu22虚拟机突然无法连接网络了,以下是故障排除步骤记录。 Ubuntu 22虚拟机网络故障快速解决指南 当在虚拟机中安装的 Ubuntu 22 系统出现 ping: connect: 网络不可达 和 ping: www.baidu.com: 域名解析出现暂时性错误的报错时,通常意味着虚拟机无法…...

C++23 新特性:深入解析 std::views::join_with(P2441R2)
文章目录 std::views::join_with 基本用法处理字符串集合std::views::join_with 与其他视图的结合使用总结 随着C23标准的逐步推进,我们迎来了许多令人兴奋的新特性,其中之一就是 std::views::join_with。这个新特性是C23中引入的视图适配器,…...
购物车构件示例
通用购物车构件设计 注:代码仅用于演示原理,不可用于生产环境。 一、设计目标 设计一个高度可复用的购物车构件,具备以下特点: 与具体业务系统解耦支持多种应用场景(商城、积分系统等)提供标准化接口易于集成和扩展二、核心架构设计 1. 分层架构 ┌─────────…...

数据可视化大屏——智慧社区内网比对平台
综述分析: 智慧社区内网数据比对信息系统 这段代码实现了一个智慧社区内网数据比对信息系统的前端界面,采用三栏式布局展示各类社区安全相关数据。界面主要由左侧数据统计、中间地图展示和右侧数据分析三部分组成,使用了多种图表可视化技术…...
详解SLAM中的李群和李代数(中)
1 概述 在上一篇文章《详解SLAM中的李群和李代数(上)》中,我们已经通过对李群求导引出了李代数。在这篇文章中,我们就系统总结一下李代数的相关知识。 2 李代数 2.1 定义 李代数是一个向量空间 g \mathfrak{g} g与一个二元运算…...

Jenkins企业级实战
目标 在Windows操作系统上使用Jenkins完成代码的自动拉取、编译、打包、发布工作。 实施 1.安装Java开发工具包(JDK) Jenkins是基于Java的应用程序,因此需要先安装JDK。可以从Oracle官网或OpenJDK下载适合的JDK版本。推荐java17版本&#x…...

uniapp-商城-52-后台 商家信息(商家信息数据,云对象使用)
1、概述 已经通过好几个篇幅来说明商家信息,包括logo、商家名称,地址,电话以及商家简介。通过表单组件和标签,以及我们的文件上传标签,都做了说明。(logo上传,用的文件上传组件是上传到公共的数…...

MySQL 索引设计宝典:原理、原则与实战案例深度解析
目录 前言第一章:索引设计的基础原则 (知其然,更要知其所以然)第二章:实战案例:电商订单系统的索引设计第三章:索引设计的实践流程总结结语 🌟我的其他文章也讲解的比较有趣😁,如果喜…...

C#上传文件到腾讯云的COS
测试环境: vs2022 .net 6控制台应用程序 测试步骤如下: 1 添加子用户,目前是为了拿到secretId和secretKey,打开添加子用户界面链接:https://console.cloud.tencent.com/cam 并为子用户添加API 密钥 2 通过链接htt…...
java的Stream流处理
Java Stream 流处理详解 Stream 是 Java 8 引入的一个强大的数据处理抽象,它允许你以声明式方式处理数据集合(类似于 SQL 语句),支持并行操作,提高了代码的可读性和处理效率。 一、Stream 的核心概念 1. 什么是 Str…...

C PRIMER PLUS——第9节:动态内存分配、存储类别、链接和内存管理
目录 1.动态内存分配 1.1 malloc 函数 1.2 calloc 函数 1.3 realloc 函数 1.4 free 函数 1.5常见错误 1.6综合例题 2.C语言的内存结构 3.存储类别 3.1作用域(Scope) 3.2链接(Linkage) 3.3存储期(Storage Du…...

作业...
基础配置 RI R2 R3 R4 R5 例如R1 BGP配置 1,R1和R2之间使用直连接口IP地址来建立EBGP对等体关系 2、R2、R3、R4之间配置OSPF协议,保证各设备之间的网络互通,且通过重发布的方式发布路由 查看R2、R3、R4的OSPF路由表: \ R2、R3、R4使用环…...

IC ATE集成电路测试学习——电流测试的原理和方法
电流测试 我们可以通过电流来判断芯片的工作状态时,首先先了解下芯片的电流是如何产生的。 静态电流 理论上,CMOS结构的芯片静态时几乎不耗电 CMOS基本结构:Pmos Nmos 串联当逻辑电平稳定时: ➜ 要么Pmos导通,Nmo…...
redis数据结构-03 (HMSET、HGET、HGETALL)
Redis 哈希介绍:HMSET、HGET、HGETALL Redis 哈希是一种强大的数据结构,允许您在单个键内存储字段值对的集合。它们对于表示对象、配置或任何可以自然分组到字段中的数据非常有用。本课将向您介绍使用 Redis 哈希的基本命令: HMSET 、 HGET …...
2025年01月09日德美医疗前端面试
目录 vue2 的双向绑定的原理vue3 的双向绑定原理vue 的生命周期vue 子组件为何不能修改父组件的值js delete 删除数组的某一个值会怎么样vue 和 react 的 diff 算法什么是闭包原型链this指向 vue2 的双向绑定的原理 以下是 Vue 2 双向绑定的原理: 1. 核心概念 …...