目录
安全优化--/etc/at.deny,/etc/at.allow
用户级别安全优化--/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:默认是所有用户都能发起定时优化