RHCE——系统的延迟任务及定时任务

延迟任务的发起
在系统中我们可以使用 at 命令来发起延迟任务
at 命令执行是调用的是 atd 服务,即使系统最小化安装 atd 也会被安装到系统中
at 任务信息存放在系统中 /var/spool/at 目录中
at 任务的日志文件被存放到 /var/log/cron 中
at 任务执行时如果遇到系统处于关闭状态,那么在开启时 atd 任务会检测未执行的任务并且立即执行
延迟任务发起方法如下:

复制代码
at 11:30
touch /mnt/file{1..5}

at 命令参数详解
at 命令执行格式为 at 参数 时间
at 命令常用参数
-m 当任务完成之后,即使没有标准输出,将给用户发送邮件
-l atq 的别名,可列出目前系统上面的所有该用户的 at 调度
-d atrm 的别名 , 可以取消一个在 at 调度中的工作
-v 使用较明显的时间格式,列出 at 调度中的任务列表
-c 可以列出后面接的该项工作的实际命令内容
-f 从文件中读取作作业
at 命令的时间表示方法
HH:MM 在今天的 HH 小时 MM 分钟执行,如果今天的这个时间点已经过了,则明天执行
HH:MM YYYY-MM-DD 强制规定在某年某月的某一天的特殊时刻进行该工作
now + 2 minutes 从现在开始几分钟 minutes, hours, days, or weeks
如何非交互的设定延迟任务
在生产环境中我们通常会用脚本来设定一个或多个延迟任务但是 at 任务的执行需要交互的进行,这样无法
满足脚本自动化运行,输入重定向可以解决交互问题:

复制代码
vim at_job.sh
at now+1min 
rm -fr /mnt/file{1..5}

定时任务发起
在系统中我们可以使用 crontab 命令来发起用户级定时任务
在系统中 /etc/cronfilename 是系统级定时任务,只有 root 用户可以发起
定时任务执行是调用的是 crond 服务,即使系统最小化安装 crond 也会被安装到系统中
定时任务信息存放在系统中 /var/spool/cron 目录中,存放文件和发起人名称一致
定时任务的日志文件被存放到 /var/log/cron 中
定时任务执行时如果遇到系统处于关闭状态,那么在开启时 crond 任务会检测未执行的任务并且立
即执行
发起用户级周期行任务
周期任务发起方式
crontab 命令的执行格式为: crontab --u 用户 --e
crontab 命令参数如下
-u :用来设定某个用户的 crontab 服务此参数一般有 root 用户来运行。
file : file 是命令文件的名字 , 表示将 file 做为 crontab 的任务列表文件并载入 crontab
-e :编辑某个用户的 crontab 文件内容。如果不指定用户,则表示编辑当前用户的 crontab 文件。
-l :显示某个用户的 crontab 文件内容,如果不指定用户,则表示显示当前用户的 crontab 文件内容。
-r :从 /var/spool/cron 目录中删除某个用户的 crontab 文件
-i :在删除用户的 crontab 文件时给确认提示。
crontab 在设定定时任务是会以 vi 命令打开临时文件在保存时会把内容同步到 /var/spool/cron 中
文件格式为:分 时 天 月 周 执行动作
11 11 * * * echo hello # 每天 11 点 11 分执行 echo hello 命令
发起系统级别的周期任务
/etc/cron.d
系统自定义周期任务
/etc/cron.daily
每天周期任务
/etc/cron.hourly
每小时周期任务
/etc/cron.monthly
每月周期任务
/etc/cron.weekly
每周周期任务
自定义周期任务设置方式

复制代码
vim /etc/cron.d/job
分钟 小时 天 月 周 用户 动作
01 09-17 * * * root date

定时任务执行优化
定时任务在执行时首先会查看执行者是否在名单中
系统中默认只存在黑名单 /etc/cron.deny ,写入此文件中的用户会被禁止使用定时任务
在系统中可以手动建立白名单 /etc/cron.allow, 当此文件出现黑名单不会被检测
白名单出现只有 root 用户和白名单用户可以执行定时任务
如果系统中没有黑白名单那么只有 root 用户可以执行任务
黑白名单为用户列表,每个用户一行
黑白名单只针对用户级定时任务进行限制

相关推荐
蜗牛前端12 分钟前
codex 全流程开发上线的高颜值礼簿小程序
前端·微信小程序
大龄秃头程序员1 小时前
我在图文流 App 里落地双层缓存、弱网降级与 OOM 治理
前端
老王以为1 小时前
React Renderer 分离的多平台架构
前端·react native·react.js
hunterandroid1 小时前
Kotlin Coroutines 与 Flow:让异步任务更清晰
前端
Bigger2 小时前
从零搭建 AI 代码审查服务:一份前端也能看懂的 Python 学习笔记
前端·ci/cd·ai编程
lichenyang4532 小时前
JSAPI、NAPI、Biz、Imp:ASCF Demo 如何真正调用系统能力和 C++ 能力
前端
lichenyang4532 小时前
IPC、JSVM、UIThread、libuv:ASCF 架构图里最容易混的几个词
前端
用户059540174462 小时前
Redis记忆存储故障恢复测试踩坑实录:手动测试让我漏掉了2个一致性Bug
前端·css
用户2136610035722 小时前
Vue2脚手架工程化与Axios集成
前端·vue.js
张元清2 小时前
React useDebounce Hook:给状态和回调做防抖(2026)
javascript·react.js