【Linux】系统的延迟任务与定时任务

发布于:2025-05-01 ⋅ 阅读:(44) ⋅ 点赞:(0)

目录

一 延迟任务与定时任务的区别

二 延迟任务

at

非交互的设定延迟任务

 安全优化--/etc/at.deny,/etc/at.allow

​编辑

三 定时任务

用户级别定时任务发起--crontab

时间表示方式

  系统级别的定时任务--/etc/cron.d/

​编辑

用户级别安全优化--/etc/cron.deny,/etc/cron.allow


一 延迟任务与定时任务的区别

不同点

1.延迟任务是一次性的,定时任务可重复

2.延迟任务使用at命令发起,定时任务使用crontab命令发起

3.延迟任务的at 用户级别任务信息存放在系统中/var/spool/at目录中,at 任务的日志文件被存放到/var/log/cron

定时任务的的crontab用户级别任务信息存放在系统中/var/spool/cron/发起人目录中,存放文件和发起人名称一致;定时任务的日志文件被存放到/var/log/cron

由于定时任务存在/etc/cron.d/的配置文件目录所以存在用户级别跟系统级别的发起

4.延迟任务是用于闲置时间的维护,定时任务用于周期性的维护

相同点

1.当延迟任务产生输出后,这些输出会以邮件的形式发送给延迟任务发起者

2.在RHEL9中默认系统中的所有普通用户都可以发起定时任务

3.定时任务执行时如果遇到系统处于关闭状态,那么在开启时atd/crond任务会检测未执行的任务并且立即执行


二 延迟任务

at

at 命令执行格式为 at [参数] [时间]

时间表示方式:

HH:MM 在今天的HH小时MM分钟执行,如果今天的这个时间点已经过了,则明天执行

HH:MM YYYY-MM-DD 强制规定在某年某月的某一天的特殊时刻进行该工作

now + 2 minutes 从现在开始几分钟minutes, hours, days, or weeks

at常用的参数:-l.-c,-r,d,-v,-V,-f,-m

以下时at命令的实验跟参数实验

 # systemctl status atd.service        //实验前提

#at 延迟的时间

#at -l               

 #at -c 任务号

#at -r 任务号

# at -d 任务号

#at -V

#at -v 延迟的时间

 #at 延迟的时间 -f work       

 #at -m 延迟时间        //当任务完成之后,即使没有标准输出,将给用户发送邮件

tips :默认有标准输出的输入都会默认发送到用户邮件,例如date

第一步先配置好本地软件仓库,邮件用到的程序在标准软件仓库中,这里主要验证at -m参数跳过软件仓库配置过程 

第二步下载要用到的邮件程序,并开启postfix守护进程

第三步测试,这里先演示有标准输出的输入命令date

 #at -m now+1min        //当任务完成之后,即使没有标准输出,将给用户发送邮件

非交互的设定延迟任务

把延迟任务编辑成脚本使用,但是at的发起需要交互所以需要用到输入重定向

 安全优化--/etc/at.deny,/etc/at.allow

 #vim /etc/at.deny

 #vim /etc/at.allow

 


三 定时任务

由于定时存在/etc/cron.d/的配置文件目录所以存在用户级别跟系统级别的发起

用户级别目录存放在/var/spool/cron/中

用户级别定时任务发起--crontab

crontab命令的执行格式为:crontab –u 用户 –e

crontab常用参数:-u,-e,-r,-i,-l

以下时crontab命令的实验跟参数实验

#systemctl status crond.service        //实验前提

# crontab -u root -e

# crontab -l
# crontab -r -u root
# crontab -ri -u root

时间表示方式

文件格式为:分 时 天 月 周 执行命令

tips:在时间表示中天和周时分开计算的,* * 5 * 5表示每月5号以及每个周的周5

  系统级别的定时任务--/etc/cron.d/

#vim /etc/cron.d/test              //发起系统自定义周期任务

编辑文本内容

* * * * * root rm -rf /media/*

#vim /etc/cron.daily/脚本文件        //发起每天周期任务

用户级别安全优化--/etc/cron.deny,/etc/cron.allow

 #vim /etc/cron.deny

 #vim /etc/cron.allow

tips:默认是所有用户都能发起定时优化